问题标签 [memory-address]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
130 浏览

c++ - VSC++,错误地址的虚拟方法,奇怪的错误

这家伙:

调用时,即使在完全重新编译之后,程序也会因访问冲突而崩溃。所有成员函数和虚拟成员函数都有正确的内存地址(我将鼠标悬停在调试模式下的方法上),但是这个函数有一个错误的内存地址:0xfffffffc。

一切看起来都很好:'this' 指针,在这个函数调用之前一切正常。这个功能也比较老了,好久没改了。这个问题只是在一些工作后突然出现,我把它全部评论出来看看是什么做的,没有任何成功。

所以我去掉了虚拟的,编译好了,效果很好。我添加了虚拟的,编译的,它仍然可以正常工作!我基本上什么都没做,记得我之前确实做了完整的重新编译,但当时仍然有错误。

我无法重现该问题。但现在它又回来了。我没有改变任何东西。删除虚拟解决了这个问题。

0 投票
2 回答
74 浏览

c++ - 按地址返回时,这不会超出范围吗?(SDL)

这是来自lazyfoo 的 SDL 教程的代码示例。

这里优化图像返回时不应该超出范围吗?看到它是本地的。

0 投票
1 回答
2723 浏览

c# - .NET:显示对象的存储位置或地址?

有没有办法获取对象的“地址”?这是出于演示目的,我知道这通常是一个坏主意,如果它完全可以作为unsafe代码工作。该项目已调整为允许不安全的代码。然而我的尝试没有成功。我到目前为止的代码没有编译:

Error: Cannot take the address of, get the size of, or declare a pointer to a managed type ('object')

即使无法检索内存地址,也可能是内存插槽或其他显示该对象位置的东西。

背景:我的目的是做一些演示,展示按值传递或按引用传递之间的差异,并转储这些对象的位置。

添加于 2010 年 6 月 27 日:

我最终放弃了从 .NET 程序本身内部进行操作的想法。似乎不会导致任何好的解决方案。即使它成功了,它也会使代码变得如此混乱,以至于你几乎无法用简单的方式解释结果并将其用于一些演示目的。我现在想按照下面答案中建议的方式使用一个好的(意味着 CLR 感知)调试器来完成它。

调试可以通过激活配置设置中的一个选项在 VS 内部进行改进Enable Unmanaged Debugging,不幸的是在 Visual Studio 的免费快速版(我现在在家中唯一的版本)中不可用。有没有办法Enable Unmanaged Debugging手动进行工作?

经过一番挣扎后,我安装了 Windows 调试工具,它为我提供了 WinDbg。我多年前用于驱动程序开发的好工具。现在它是一个巨大包裹的一部分。我试图按照说明让 SOS.DLL 工作但没有成功。我什至找不到这个 DLL。即使这个解决方案似乎也需要Enable Unmanaged Debugging项目中的标志......

0 投票
2 回答
1801 浏览

operating-system - MMU 和 TLB 未命中

假设如下。我有一个带有虚拟内存和一个杠杆分页的系统,我有一个 MMU,TLB 是由软件控制的。

好的..所以想象我是一个进程,我想在虚拟地址 vaddr 的 RAM 中读取一个单词。

因此,CPU 给出了 MMU vaddr,MMU 在 TLB 中检查是否存在(假设)5 个最高有效位 vaddr 的条目。如果它在那里......一切都很好,它会计算物理地址并且一切正常。

现在..假设它不在 TLB 中。在这种情况下,MMU 会产生中断(页面错误)。好的..现在我在页面错误的处理程序中。

在 PBR(页基址寄存器)中,我有页表的起始地址。我的问题在这里。这个地址是物理地址吗?我想是的,因为如果它是虚拟的,则意味着两件事:1)必须以某种方式保留在进程的虚拟地址空间中(从未听说过类似的东西)2)如果该地址不在 TLB 中,会导致再次页面错误,我将有一个无限循环。

关于表中地址的相同问题。如果我有两级分页。第一级表(指向第二级表)中的条目中的地址是虚拟的还是物理的?

谢谢。

0 投票
2 回答
1746 浏览

java - 如何使用 Java 从地址中获取值?

对于我用 Java 编写的混淆程序,我需要找到一种方法来获取特定地址的值。例如,在我在十六进制编辑器中打开的程序中,地址 0000001F 是十六进制值“00”。此外,是否可以写入特定的内存地址?例如写入 0000001F 并将其从“00”更改为例如“FF”

0 投票
7 回答
1481 浏览

c++ - 如何返回存储在 C++ 中特定内存地址的变量的名称

第一次在这里发布这么多我的谷歌结果来自这个精彩的网站。

基本上,我想找到存储在特定内存地址的变量的名称。我有一个我写的内存编辑应用程序,它编辑一个值,问题是每次保存这个值的应用程序被修补时,我必须将新的内存地址硬编码到我的应用程序中,然后重新编译,这需要很长时间维护它几乎不值得做。

我想做的是获取存储在某个内存地址的变量的名称,这样我就可以在运行时找到它的地址并将其用作要编辑的内存地址。

这一切都是用 C++ 编写的。

提前致谢!

编辑:

好吧,我决定要从 .txt 文件中流式传输数据,但我不确定如何将字符串转换为 LPVOID 以用作 WriteProcessMemory() 中的内存地址。这是我尝试过的:

代码在语法方面都是正确的,它可以编译和运行,但是 WriteProcessMemory 错误,我只能想象它与我的错误 LPVOID 变量有关。如果扩展我的问题的使用违反了规则,我深表歉意,如果是,我将删除我的编辑。

0 投票
2 回答
2455 浏览

c - 内存地址字面量

给定十六进制格式的文字内存地址,如何在 C 中创建一个指向该内存位置的指针?

我的平台(IBM iSeries)上的内存地址是 128 位。C类型long long也是128bits。

想象一下,我有一个字符串(char 数组)的内存地址,即:C622D0129B0129F0

我假设正确的 C 语法可以直接寻址这个内存位置:

const char* const p = (const char* const)0xC622D0129B0129F0ULL

我使用ULL后缀表示 unsigned long long 文字。

我的内核/平台/操作系统是否允许我这样做是另一个问题。我首先想知道我的语法是否正确。

0 投票
2 回答
139 浏览

c++ - 变量地址

我正在编写统计系统。它应该使用给定的参数进行一些输出。例如:

看,每次更新调用我都需要在所有传递的变量的新值中。所以我决定在内存中传递他们的地址。但现在数据由地址组成。我怎样才能从中获得价值?有没有可能,如果没有,你对这个问题有什么建议?

0 投票
7 回答
4183 浏览

c++ - 这个地址(0x00000400) = 1024是怎么回事

我在 C++ 中工作,我有一个#define VAL 0x00000400. 当我设置一个等于定义的变量时:int value = VAL; 当我通过调试器运行时,显示变量值 = 1024。有人可以解释一下它是如何变成 1024 的吗?可能是一些指向内存地址信息、#define 信息或相关内容的链接。

0 投票
3 回答
3751 浏览

naming - 十六进制字母表中的单词

我正在寻找可以从十六进制字母创建的单词,[0-9a-f]+ 例如C0FFEE, DEFACED
We also can use lisoz, where1=l,i; 5=s; 2=z; 0=o等。
它可以用于内存寻址或 IPv6 地址,因此它会很有趣并且更容易记住。

这里有一个很好的列表:http ://www.nsftools.com/tips/HexWords.htm 但我相信我们可以想出一些不存在的东西或发明新词:)