[英]How to debug an external process under C++ Builder?
我有一個用 C++ Builder 編寫的 DLL。 DLL 內置“調試信息”。
我無法從 IDE 運行和調試此 DLL,因為它作為插件在另一個進程(主 exe)中動態加載。 我的 DLL 需要先復制到主 exe 的文件夾中。
因此,我將 IDE 附加到該過程,但我不知道從這里做什么。
我知道,如果我在主進程中單擊一個按鈕來加載和使用我的 DLL,則會引發 AV,並顯示一條自定義消息,其中包含一些關於錯誤的小信息。 當 AV 被提升時,調試器不會介入。 錯誤可能在更高級別被捕獲。
如果我還可以附上我的 DLL 的源代碼並在其中放置一個斷點,那就太好了。
我如何獲得有關該 AV(其起源)的更多信息?
(基本上,那些進行此類調試的人提供的任何提示都會非常有幫助)。
我有一個用 C++ Builder 編寫的 DLL。 DLL 內置“調試信息”。 我無法從 IDE 運行和調試此 DLL,因為它在另一個進程中作為插件加載。
是的你可以。
打開IDE、go項目中的DLL項目進入項目的Run參數,設置所需的EXE為項目的Host。 這樣,當您“運行”DLL 項目進行調試時,IDE 將改為執行主機並將調試器附加到該進程。 當主機進程將您的 DLL 加載到 memory 中時,您可以根據需要逐步調試 DLL 的代碼。
如果在您開始調試之前主機進程已經在運行,您可以在加載 DLL 之前手動將調試器附加到主機進程,然后一旦主機加載 DLL,調試器仍然能夠單步執行 DLL 的代碼進入 memory。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.