如果我知道数据在哪里,例如0xffffffff7fffd9d8与0x10019c1e0,我能对数据有什么了解?

初学者

我想知道在调试过程中指针的数值是否可以告诉我一些用法。

例如,我的调用堆栈中包含以下内容:

std::basic_ostringstream<char, std, char_traits<char>, std::allocator, <char>void>::str(
    0xffffffff7fffd9d8, 
    0x10019c1e0, 
    0x100446710, 
    0x0, 
    0xffffffff7fffd9d8, 
    0xffffffff7b331688), 
at 0xffffffff7b1b28ec

似乎有形式为0xfff和的指针0x100这种区别有什么意义吗?

乔恩·普迪(Jon Purdy)

在理论上,在64位平台上,您可以寻址2 64或大约16 EB。由于大多数应用程序不需要这么大的地址空间,因此硬件供应商定义了较小的虚拟地址空间,以降低地址转换的成本。因此,在AMD和Intel芯片上,只有地址的最低有效48位是有效的,并且第48位至第63位必须是第47位的副本。这些被称为规范形式地址,并且它们跨越以下范围:

  • 0000000000000000 - 00007FFFFFFFFFFF
  • FFFF800000000000 - FFFFFFFFFFFFFFFF

前者被称为规范下半部地址,后者规范上半部分这是内核的决定,但通常上半部分的地址指的是堆栈和静态程序数据区域,而下半部分的地址指的是堆内存。

资料来源:维基百科

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ioctl参数(例如0x1268 / BLKSSZGET)在哪里实际指定?

我如何设计一个以1开始并以0(1,2,3,4,5,6,7,8,9,0)结束的int循环

如果我在GHCI上输入[1 / 0..1 / 0],我将得到无限无限。为什么?

R数据帧错误-替换有1行,数据有0

什么是Windows消息0x02c8和0x02c9?

我不知道何时在Series(或数据框)上替换0,是否还会替换False?

如果linq查询中没有数据,我如何返回0作为默认的十进制值?

此错误是什么意思,我在哪里做错了?'目标/ Y:0'TensorFlow:形状错误。

有人知道为什么我得到“退出代码为0的进程完成”吗?

C:如果据我了解0和'\ 0'相同,那么当我编写int my_array = {0};时,编译器如何知道数组的大小?

为什么我的函数返回“函数___在0x7f37c058d378”?

在静脉示例中,我如何知道stage的值何时或为什么从0变为1?

$ <-。data.frame`(x,name,value)中的错误:替换有1行,数据有0

替换有0行,数据有25错误

为什么我需要在数据中添加“ [0]”以使其呈现,如果没有,就出现错误?

为什么一个int变量的值为'0xffffffff` >> 1!= 0x7fffffff?

我的android数据库在哪里?

我不知道如何重新缩放数据?(例如0〜50:1 50〜100:2等等。)

Mongo中对我的数据有什么好的数据模型?

当我尝试使用Thrift :: API :: HiveClient执行语句时,为什么会出现错误“ Thrift :: TException = HASH(0x122b9e0)”?

有谁知道我在哪里可以找到psql 8.x?

我的POST()数据在哪里

Swift 3 Firebase 数据检索错误:无法将“__NSCFString”(0x1a8e00d50)类型的值转换为“NSDictionary”(0x1a8e01c78)

即使有 1,我的程序也从数据库中读取 0

`$<-.data.frame`(`*tmp*`, newvar, value = numeric(0)) 中的错误:替换有 0 行,数据有 139

AWS Glacier 美国东部最便宜。如果我用它来存储来自印度的数据有什么缺点吗?

为什么这个 PostgreSQL 查询会导致 0 个结果,即使我知道有

为什么即使我选择 * 为 0,节点 js 仍会返回所有 tinyint 数据?

我只能使用 [0:1] 之类的切片窗口对我的 pandas 数据框进行切片以获取特定行,为什么 [0 会引发 KeyError?