问题标签 [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.
c++ - VSC++,错误地址的虚拟方法,奇怪的错误
这家伙:
调用时,即使在完全重新编译之后,程序也会因访问冲突而崩溃。所有成员函数和虚拟成员函数都有正确的内存地址(我将鼠标悬停在调试模式下的方法上),但是这个函数有一个错误的内存地址:0xfffffffc。
一切看起来都很好:'this' 指针,在这个函数调用之前一切正常。这个功能也比较老了,好久没改了。这个问题只是在一些工作后突然出现,我把它全部评论出来看看是什么做的,没有任何成功。
所以我去掉了虚拟的,编译好了,效果很好。我添加了虚拟的,编译的,它仍然可以正常工作!我基本上什么都没做,记得我之前确实做了完整的重新编译,但当时仍然有错误。
我无法重现该问题。但现在它又回来了。我没有改变任何东西。删除虚拟解决了这个问题。
c++ - 按地址返回时,这不会超出范围吗?(SDL)
这是来自lazyfoo 的 SDL 教程的代码示例。
这里优化图像返回时不应该超出范围吗?看到它是本地的。
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
项目中的标志......
operating-system - MMU 和 TLB 未命中
假设如下。我有一个带有虚拟内存和一个杠杆分页的系统,我有一个 MMU,TLB 是由软件控制的。
好的..所以想象我是一个进程,我想在虚拟地址 vaddr 的 RAM 中读取一个单词。
因此,CPU 给出了 MMU vaddr,MMU 在 TLB 中检查是否存在(假设)5 个最高有效位 vaddr 的条目。如果它在那里......一切都很好,它会计算物理地址并且一切正常。
现在..假设它不在 TLB 中。在这种情况下,MMU 会产生中断(页面错误)。好的..现在我在页面错误的处理程序中。
在 PBR(页基址寄存器)中,我有页表的起始地址。我的问题在这里。这个地址是物理地址吗?我想是的,因为如果它是虚拟的,则意味着两件事:1)必须以某种方式保留在进程的虚拟地址空间中(从未听说过类似的东西)2)如果该地址不在 TLB 中,会导致再次页面错误,我将有一个无限循环。
关于表中地址的相同问题。如果我有两级分页。第一级表(指向第二级表)中的条目中的地址是虚拟的还是物理的?
谢谢。
java - 如何使用 Java 从地址中获取值?
对于我用 Java 编写的混淆程序,我需要找到一种方法来获取特定地址的值。例如,在我在十六进制编辑器中打开的程序中,地址 0000001F 是十六进制值“00”。此外,是否可以写入特定的内存地址?例如写入 0000001F 并将其从“00”更改为例如“FF”
c++ - 如何返回存储在 C++ 中特定内存地址的变量的名称
第一次在这里发布这么多我的谷歌结果来自这个精彩的网站。
基本上,我想找到存储在特定内存地址的变量的名称。我有一个我写的内存编辑应用程序,它编辑一个值,问题是每次保存这个值的应用程序被修补时,我必须将新的内存地址硬编码到我的应用程序中,然后重新编译,这需要很长时间维护它几乎不值得做。
我想做的是获取存储在某个内存地址的变量的名称,这样我就可以在运行时找到它的地址并将其用作要编辑的内存地址。
这一切都是用 C++ 编写的。
提前致谢!
编辑:
好吧,我决定要从 .txt 文件中流式传输数据,但我不确定如何将字符串转换为 LPVOID 以用作 WriteProcessMemory() 中的内存地址。这是我尝试过的:
代码在语法方面都是正确的,它可以编译和运行,但是 WriteProcessMemory 错误,我只能想象它与我的错误 LPVOID 变量有关。如果扩展我的问题的使用违反了规则,我深表歉意,如果是,我将删除我的编辑。
c - 内存地址字面量
给定十六进制格式的文字内存地址,如何在 C 中创建一个指向该内存位置的指针?
我的平台(IBM iSeries)上的内存地址是 128 位。C类型long long
也是128bits。
想象一下,我有一个字符串(char 数组)的内存地址,即:C622D0129B0129F0
我假设正确的 C 语法可以直接寻址这个内存位置:
const char* const p = (const char* const)0xC622D0129B0129F0ULL
我使用ULL
后缀表示 unsigned long long 文字。
我的内核/平台/操作系统是否允许我这样做是另一个问题。我首先想知道我的语法是否正确。
c++ - 变量地址
我正在编写统计系统。它应该使用给定的参数进行一些输出。例如:
看,每次更新调用我都需要在所有传递的变量的新值中。所以我决定在内存中传递他们的地址。但现在数据由地址组成。我怎样才能从中获得价值?有没有可能,如果没有,你对这个问题有什么建议?
c++ - 这个地址(0x00000400) = 1024是怎么回事
我在 C++ 中工作,我有一个#define VAL 0x00000400
. 当我设置一个等于定义的变量时:int value = VAL; 当我通过调试器运行时,显示变量值 = 1024。有人可以解释一下它是如何变成 1024 的吗?可能是一些指向内存地址信息、#define 信息或相关内容的链接。
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 但我相信我们可以想出一些不存在的东西或发明新词:)