簡體   English   中英

如何在 C++ Builder 下調試外部進程?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM