1
我有一個在擴展模式下構建的外殼擴展,我也生成了調試符號和.pdb文件。我附上構建上下文菜單擴展.dll文件到運行explorer.exe進程在Visual Studio程序,我可以在輸出窗口中看到在程序連接explorer進程的事件,如下所示:在發佈模式下調試一個外殼擴展
'explorer.exe': Unloaded 'C:\Windows\System32\mydocs.dll'
'explorer.exe': Unloaded 'C:\Windows\System32\sendmail.dll'
'explorer.exe': Unloaded 'C:\Windows\System32\zipfldr.dll'
The thread 'Win32 Thread' (0x16d8) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1650) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1070) has exited with code 0 (0x0).
但它永遠達不到我在函數Initialize中設置的斷點(構成繼承並實現IshellExtInit類的類)。當我對文件進行右鍵單擊時,右鍵菜單會使用自定義上下文菜單進行初始化並執行所需的操作,但不會涉及到斷點! 我想知道如何調試,因爲我試圖註冊回收站的上下文菜單,它不工作,我想看看代碼發生了什麼。 與回收站登記代碼可以在這個帖子中找到: recycle bin registration
調試發佈版本是衆所周知的不準確,即使使用符號也沒有多大改進。你可以試試windbg,ida或者VS'組裝模式;那些人會關注斷點,但你顯然正在組裝。 – ssube
同意。雖然如果您啓用符號並從發佈版本中刪除所有優化,您可以使用其限制。 – drescherjm
如果我建立在調試模式下,我得到這個:\t錯誤PRJ0019:一個工具從「執行註冊」返回一個錯誤代碼。我以管理員身份運行VS。 – AlexandruC