2016-10-05 94 views
0

我分析完全內存轉儲和我申請WinDBG的uf命令,看看有什麼功能呢WinDBG的反彙編地址解析

0: kd> uf profsvc!CUserProfileService::_RegisterGPNotification 

這是輸出的一部分。我不知道爲什麼在括號中的地址比的profsvc!CUserProfileService::_RegisterGPNotification+0x44地址不同應該是

000007fe fb149276

000007fe fb155019

當我試着使用u以未組裝的地址000007fe fb155019它指向

profsvc!CUserProfileService::_RegisterGPNotification+0x44:

我真的很困惑,任何幫助深表感謝。從WinDBG的

…. 
profsvc!CUserProfileService::_RegisterGPNotification+0x2e: 
000007fe`fb14925e ba01000000  mov  edx,1 
000007fe`fb149263 488bc8   mov  rcx,rax 
000007fe`fb149266 ff157c410200 call qword ptr [profsvc!_imp_RegisterGPNotification (000007fe`fb16d3e8)] 
000007fe`fb14926c 85c0   test eax,eax 
000007fe`fb14926e 0f84a5bd0000 je  profsvc!CUserProfileService::_RegisterGPNotification+0x44 (**000007fe`fb155019**) 

profsvc!CUserProfileService::_RegisterGPNotification+0x40: 
000007fe`fb149274 33db   xor  ebx,ebx 
000007fe`fb149276 eb00   jmp  profsvc!CUserProfileService::_RegisterGPNotification+0x66 (000007fe`fb149278) Branch 

profsvc!CUserProfileService::_RegisterGPNotification+0x66: 
000007fe`fb149278 488b0d31b00200 mov  rcx,qword ptr [profsvc!WPP_GLOBAL_Control (000007fe`fb1742b0)] 
000007fe`fb14927f 488d052ab00200 lea  rax,[profsvc!WPP_GLOBAL_Control (000007fe`fb1742b0)] 
000007fe`fb149286 483bc8   cmp  rcx,rax 
000007fe`fb149289 740a   je  profsvc!CUserProfileService::_RegisterGPNotification+0x94 (000007fe`fb149295) Branch 

0: kd> u 000007fe`fb155019 
profsvc!CUserProfileService::_RegisterGPNotification+0x44: 
000007fe`fb155019 ??    ??? 
         ^Memory access error in 'u 000007fe`fb155019' 
+0

有可能是一個有效的問題在這裏的某個地方,但這是不可讀。 *我想知道爲什麼括號中的地址*您的括號是什麼意思? –

+0

我的意思是指令je profsvc!CUserProfileService :: _ RegisterGPNotification + 0x44(** 000007fe'fb155019 **)下面的括號。通常je跳到profsvc!CUserProfileService :: _ RegisterGPNotification + 0x44這不是地址000007fe'fb155019爲什麼地址不同於跳轉地址?謝謝您的幫助。 –

+2

在優化函數可以分解爲塊並且pdb沒有反映優化地址(windbg通常可以解決它,即使它們不是線性的)後,優化的反彙編與線性符號中顯示的偏移量不匹配。 ea和$ ea2僞寄存器將始終是安全的 – blabb

回答