Существует несколько причин несоответствия.
Во-первых, вы запускаете dumpbin
в x64-версии notepad.exe
, хранящейся в System32
, но, похоже, вы отлаживаете x86 notepad.exe
хранится в SysWoW64
.Убедитесь, что вы запустили версию WinDbg для x64 или AMD64 и что вы подключаетесь к C:\Windows\System32\notepad.exe
.
После того, как все будет улажено, должно стать больше смысла, но есть еще одна вещь, о которой следует помнить.Команда x
в WinDbg отображает адрес виртуальной памяти символа в процессе выполнения, а dumpbin
отображает его как смещение от базового адреса модуля.
Некоторое быстрое вычитаниеиз базы модуля и все должно совпадать.
Вот как это выглядит в моей системе:
C:\>dumpbin /ALL "C:\Windows\System32\notepad.exe" | find "entry point"
1AC50 entry point (000000014001AC50) WinMainCRTStartup
0:000> x notepad!WinMainCRTStartup
00007ff6`4fe1ac50 notepad!WinMainCRTStartup (<no parameter info>)
0:000> ? notepad!WinMainCRTStartup - notepad
Evaluate expression: 109648 = 00000000`0001ac50