WinDbg显示中缺少标识符名称

时间:2020-05-17 19:27:58

标签: windbg masm

我正在使用WinDbg(AMD64)检查64位可执行文件。 这是我使用ML64进行汇编以创建可执行文件的汇编代码:

_data SEGMENT

b DWORD 0

DWORD 0

_data ENDS

_text SEGMENT

主程序

lea rax, a
mov dword ptr [rax], 1

lea rbx, b
mov dword ptr [rbx], 1

mov eax, dword ptr [rax]
add dword ptr [rbx], eax

inc eax

imul eax, dword ptr [rbx]
mov dword ptr [rbx], eax

ret

主要ENDP

_text ENDS

END

这是我的ML64命令:

ml64.exe e:\ Assembly \ WindowsDebugging \ PointersProject \ PointersProject.asm / link / SUBSYSTEM:CONSOLE / ENTRY:main / DEBUG / OPT:NOREF,NOICF,NOLBR

到目前为止,一切都很好。但是,当我加载此可执行文件并反汇编主要功能时,标识符(a和b)丢失了,而是看到了

0:000> uf main

PointersProject!main:

00007ff7`b6211010 lea     rax,[PointersProject!main <PERF> (PointersProject+0x4004) (00007ff7`b6214004)]
00007ff7`b6211017 mov     dword ptr [rax],1
00007ff7`b621101d lea     rbx,[PointersProject!main <PERF> (PointersProject+0x4000) (00007ff7`b6214000)]
00007ff7`b6211024 mov     dword ptr [rbx],1
00007ff7`b621102a mov     eax,dword ptr [rax]
00007ff7`b621102c add     dword ptr [rbx],eax
00007ff7`b621102e inc     eax
00007ff7`b6211030 imul    eax,dword ptr [rbx]
00007ff7`b6211033 mov     dword ptr [rbx],eax
00007ff7`b6211035 ret

我原本希望在LEA行中看到这样的内容:

    00000001`40001010 488d05ed2f0000  lea     rax,[PointersProject!a (00000001`40004004)]
    00000001`4000101d 488d1ddc2f0000  lea     rbx,[PointersProject!b (00000001`40004000)]

是什么意思?为什么WinDbg不显示标识符?是因为在构建过程中进行了一些优化吗?如果是这样,我该如何避免呢?请帮忙。

0 个答案:

没有答案