Ale*_*lex 5 c debugging struct visual-studio
让我们说我正在调试优化代码中的崩溃.我查看了反汇编,我看到如下内容:
lea eax,[edi+8Ch]
Run Code Online (Sandbox Code Playgroud)
现在让我说我知道在edi中存储了什么结构,在这种情况下它是一个有点大的结构.足够大,我无法一眼就看出8Ch偏移对应的字段.
我一直在做的只是在Visual Studio中打开我的监视窗口,并在一个转换的NULL指针上手动执行指针算法(offsetof macro会做什么),直到我得到匹配的那个,但这很乏味.有没有办法可以更快地确定访问哪个字段?
如果您需要花时间进行此调试方案,我建议编写一个程序来打印结构字段的所有偏移量,并将它们成对列出offset; field
。
我会更进一步,编写一个脚本(例如,在 Python 中),该脚本获取结构体的文本并生成一个 C 代码文件,其中包含所有offsetof
结构体字段的所有语句。
归档时间: |
|
查看次数: |
1103 次 |
最近记录: |