内核中的地址

2024-01-20

当我在内核中找到地址时,我有一个问题。我在内核中插入一个 hello 模块,在这个模块中,我放置了这些东西:

char mystring[]="this is my address";
printk("<1>The address of mystring is %p",virt_to_phys(mystring));

我想我可以获得mystring的物理地址,但是我发现,在syslog中,它的打印地址是0x38dd0000。然而,我转储了内存,发现它的真实地址是dcd2a000,与之前的地址有很大不同。这怎么解释呢?我做错事情了?谢谢

PS:我使用了一个工具来转储整个内存、物理地址。


根据VIRT_TO_PHYS 的手册页 http://mirror.linux.org.au/linux.conf.au/2005/cdrom-beta-1/linux-mandocs-2.6.12.6/virt_to_phys.html

返回的物理地址是给定内存地址的物理(CPU)映射。仅在直接映射或通过 kmalloc 分配的地址上使用此函数才有效。

该函数不提供 DMA 传输的总线映射。在几乎所有可能的情况下,设备驱动程序不应使用此函数

尝试分配内存mystring using kmalloc first;

char *mystring = kmalloc(19, GFP_KERNEL);
strcpy(mystring, "this is my address"); //use kernel implementation of strcpy
printk("<1>The address of mystring is %p", virt_to_phys(mystring));
kfree(mystring);

这是发现的 strcpy 的实现here http://lxr.linux.no/linux/lib/string.c#L70:

char *strcpy(char *dest, const char *src)
{
    char *tmp = dest;

    while ((*dest++ = *src++) != '\0')
            /* nothing */;
    return tmp;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内核中的地址 的相关文章

  • 用于列表和映射的 C++ 容器

    我们有一个键和值对的集合 我们需要一个容器 它可以帮助我们检索值 o 1 但也可以记住插入顺序 以便当我们进行迭代时 我们可以像插入顺序一样进行迭代 由于键是一个字符串 我们将无法使用集合或类似的结构 目前我们已经定义了自己的集合类 其中包
  • 如何在代码中设置控件模板?

    我在 XAML 中有这个
  • C++ 中的映射的多个键

    我有一个表 其中的条目是这样的 Row Column1 Column2 Column3 Column4 1 0X0A 1 2 A 2 0X0B 2 2 B 3 0x0C 3 2 C 现在我想使用映射 以便我可以使用第 1 列或第 2 列作为
  • accept() 创建一个新套接字是什么意思?

    我的问题基于以下理解 套接字由 ip port 定义 服务器和客户端都有自己的套接字 Socket连接由五组server ip server port client ip client port protocol定义 套接字描述符是标识套接
  • 在实体框架中附加集合

    使用实体框架 我可以使用附加单个对象 entity Attach 但是 我没有看到任何方法允许我将多个对象的集合 数组添加到实体 我必须循环遍历集合中的每个项目并调用entity Attach 每一次 是的 您必须循环遍历子集合并Attac
  • QSpinBox 具有用于十六进制输入的 Unsigned Int

    这里写了很多关于 QSpinBox 使用 int 作为其数据类型的限制的问题 人们通常希望显示更大的数字 就我而言 我希望能够以十六进制显示无符号 32 位整数 这意味着我希望我的范围为 0x0 0xFFFFFFFF 正常的 QSpinBo
  • 设置 C# 可选参数的默认值

    每当我尝试将可选参数的默认值设置为资源文件中的某些内容时 我都会收到以下编译时错误 message 的默认参数值必须是编译时常量 有什么方法可以改变资源文件的工作方式来实现这一点吗 public void ValidationError s
  • 在 C 中从数组创建子数组的最佳方法

    我有一个数组说a 3 1 2 5 我必须创建另一个数组a2 2 2 5 我尝试过的是创建一个新数组a2 只需复制所需位置范围内的所有元素即可 在C语言中还有其他方法可以实现这一点吗 memcpy a2 a 1 2 sizeof a
  • 获取DataGridView中特定列的值

    我的 Winforms 应用程序中有一个 datagridview 用户可以单击 datagridview 上的任意位置 然后单击按钮对该数据行执行操作 但是 为了做到这一点 我需要从该行恢复 ID 现在请记住 用户可能尚未单击 ID 列
  • const QList 警告 = QList() << 0; gcc 4.7.2 的段错误

    因此 主题行中提到的代码会导致 Qt 4 8 3 和 gcc 4 7 2 出现分段错误 这是在 cpp 文件中的任何类 结构之外 并且与 gcc 4 4 一起使用 const QList
  • 未初始化的枚举变量值

    我使用 enum 声明新类型 DAY 然后从中声明两个变量 day1 和 day2 然后当我使用未初始化的值时 我应该看到 0 到 6 之间的值 因为 enumlist 中的值介于 0 到 6 之间 但我收到了这些值改为 858993460
  • C#:模拟内存泄漏

    我想用c 编写以下代码 a 模拟内存泄漏的小型控制台应用程序 b 小型控制台应用程序 它将调用上述应用程序并立即释放它 模拟管理内存泄漏问题 换句话说 应用程序 b 将不断调用并释放应用程序 a 以模拟如何遏制 叛逆 内存泄漏应用程序 而不
  • 使用 istream_iterator 范围构造时无法访问向量

    我尝试编译此代码片段 但出现编译器错误 使用 Visual Studio 2010 进行编译 include
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主
  • 如何从函数调用事件处理程序?

    我有一个类 我从中调用一个函数ABC string st 带字符串参数 该函数定义在一个Form class Form1 我有一个列表视图 想要从函数中自动调用列表视图 mouse click 事件 我该如何做到这一点 您不能调用另一个类的
  • 使用 ViewBag 时出现 RuntimeBinderException

    我们收到 Layout cshtml 中使用的 Viewbag 项目的 RuntimeBinderException 我们在内存分析器中观察到这些异常 它们不是致命的 一切正常 但很烦人 我们想清除它们 例如 以下代码会导致异常 Rende
  • Gnu 时间和格式化输出

    我想使用 gnu time 来测量一些小 c 程序的运行时间 人 中写道 f FORMAT format FORMAT Use FORMAT as the format string that controls the output of
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • 重载解析:这如何不含糊不清?

    假设我们有这段代码 是从一个单独的问题复制的 namespace x void f class C void f using x f f lt 名字f在指定的行上明确指的是x f 至少根据 gcc 和 clang 为什么是x f优先于x C
  • VB.NET 相当于 C# var 关键字 [重复]

    这个问题在这里已经有答案了 是否有与 C 等效的 VB NETvar关键词 我想用它来检索 LINQ 查询的结果 选项推断 http msdn microsoft com en us library bb384665 aspx必须是on为了

随机推荐

  • 如何检查一个数值是否是整数?

    我需要检查 Python 中的值是否为整数 请注意 我所说的整数是指像这样的值2 1 0 and 4 0000 然而0 4 and 2 3不是整数 我怎样才能做到这一点 float实例有一个is integer方法 它告诉你是否f int
  • 使用javascript将Base64解码为十六进制字符串

    需要使用 javascript 将 Base64 字符串转换为十六进制 例子 var base64Value oAAABTUAAg 需要转换方法 输出 解码数据 十六进制 A0000005350002 我知道这是正确的 因为我可以使用这个网
  • 添加对.net core csproj文件的依赖

    我正在使用 net core 的预发布版本 内部版本 1 0 0 preview3 004031 没有project json 文件 它们被csproj 替换 我找不到任何描述如何向 net core 的 csproj 添加依赖项的示例 可
  • 嵌入式 Jetty 9 一次处理一个请求

    我在嵌入式模式下使用 jetty 9 尽管我已经给出了threadpool500 的服务器仍然一次只处理一个请求 我缺少什么 Java代码 这里我期望所有线程名称日志可以即时打印 但它们是一张一张打印的 public class Main
  • iOS 音频单元 - 创建立体声正弦波

    周末我在学习如何在 iOS 上进行音频合成编程时遇到了障碍 我在 iOS 上进行开发已经好几年了 但我刚刚进入音频合成方面 现在 我只是编写演示应用程序来帮助我学习这些概念 我目前已经能够在音频单元的播放渲染器中构建和堆叠正弦波 没有任何问
  • LOCAL_LDLIBS 与 LOCAL_LDFLAGS

    Android NDK 指南解释了以下两个变量Adnroid mk如下 LOCAL LDLIBS 构建共享库或可执行文件时要使用的附加链接器标志列表 LOCAL LDFLAGS 构建共享库或可执行文件时要使用的其他链接器标志的列表 那么这两
  • 电子邮件地址中可以有撇号吗? [复制]

    这个问题在这里已经有答案了 可能的重复 电子邮件地址中允许使用哪些字符 https stackoverflow com questions 2049502 what characters are allowed in email addre
  • “弧形移植”和“弧形修补”有什么区别?

    arc help full less揭示了这一点graft graft revision Grafts revision and its dependencies if any onto your working tree force Do
  • 从 Python 字典中删除 None 值

    Python 新手 所以这可能看起来很愚蠢 我有两个命令 default a alpha b beta g Gamma user a NewAlpha b None 我需要使用用户中存在的值更新我的默认值 但仅适用于那些值不等于 None
  • 如何转义 YAML 字符串中的冒号和其他特殊字符?

    我有以下 YAML 片段 description API for bean consuming applications Examples painted pony lima bean 招摇编辑器 http editor swagger i
  • 函数调用的正则表达式?

    我只想从函数调用中提取一些引用的文本 并且想知道是否可以获得有关正则表达式的帮助 该字符串看起来像这样 MyFunction MyStringArg 本质上 我想扫描文件中任何调用 MyFunction 的行 然后捕获引号内的字符串文字 后
  • 使用正则表达式验证数学表达式?

    我想使用正则表达式验证数学表达式 数学表达式可以是这样的 可以为空 表示没有输入任何内容 如果指定 它将始终以运算符开头 or or or 并且后面总是跟着一个可以有的数字 任意位数且数字可以是小数 包含 数字之间 或整数 数字中没有 符号
  • 使用 if 语句检查 mousedown 是否有效?

    是否可以做这样的事情 if this mousedown true 我以为这会起作用 但事实并非如此 额外细节 我试图检查当鼠标离开特定位置时鼠标按钮是否按下DIV 因此如果用户在鼠标离开 div 时按住鼠标按钮 则执行此操作 否则执行此操
  • EditText 不接受数字输入

    我的 Android 应用程序中有一个 EditText 视图 我的 EditText 不采用整数值作为输入 但它采用所有其他值 以下是我的 EditText 视图
  • 对齐子图中的 ylabel

    我有几个子图 一个在另一个下 每个子图的 y 轴都标有不同的值 比如第一个是 1 5 第二个是 10 1000 等 所以结果是每个 ylabel 都会有不同的对齐方式 有没有办法来解决这个问题 例如 将所有 ylabel 向左对齐 或者还有
  • 为什么 eval 是邪恶的?

    我知道Lisp和Scheme程序员通常会这么说eval除非绝对必要 否则应避免 我已经看到了对几种编程语言的相同建议 但我还没有看到反对使用的明确论据列表eval 在哪里可以找到使用潜在问题的说明eval 例如 我知道以下问题GOTO在过程
  • 卷曲:连接被拒绝

    运行curl时出现以下错误 curl 7 连接127 0 0 1端口8080失败 连接 拒绝了 看起来很容易调试 但是 我没有找到如何解决它 文件中提到了地址127 0 0 1etc hosts 我在Ubuntu系统上使用curl版本7 4
  • 如何从 Sinch 应用仪表板删除上传的 APNS 证书?

    我们正在开发呼叫应用程序使用新奇SDK 我想从 Sinch Dashboard 中创建的应用程序中删除上传的 APNS 证书 我没有找到任何方法来从中删除现有的上传证书 NOTE 现在sinch在App上传的认证附近提供了 删除 选项 No
  • 如何使用java脚本向“go服务器”(go语言)发送json请求并接收json响应

    如何使用java脚本发布json请求并从 go服务器 go语言 接收json响应 我试过这个 JavaScript 代码 var calculate operand1 null operand2 null operator null fun
  • 内核中的地址

    当我在内核中找到地址时 我有一个问题 我在内核中插入一个 hello 模块 在这个模块中 我放置了这些东西 char mystring this is my address printk lt 1 gt The address of mys