简体   繁体   中英

How to debug a DLL file in Delphi

I am a developer working on Visual C++, but in my project there are some Delphi components. I need to debug the Delphi components to fix some issues.

What are the things that are a must to generate a DLL file in debug and then start debugging in Delphi?

In Delphi 7 you would do this:

Project | Options | Compiler | Debugging | Debug information (check)

Then go to Run | Parameters | Host Application and enter the name of your exe.

Add some breakpoints in your DLL code and then click run. Your exe will be loaded and you can debug the DLL parts in the Delphi IDE.

If your exe is already running, click Run | Attach to process

-- I've tested this and found that I also needed to check the "Include remote debug symbols" on the Linker page of project options in Delphi 7.

I was able to get a breakpoint to hit using the Run | Parameters as well as Run | Attach to process methods. The test DLL I had created had a single stdcall function and was dynamically loaded by a Visual C++ console application.

We use this quite often (using Delphi).

Be sure to:

  1. Enable all debug options on all projects (DLL file(s)). And disable optimization.
  2. Be sure to set the host application to the right EXE file.
  3. Build DLL file(s).

You can now put breakpoints in both dll and exe. And run the DLL file from the IDE. It starts the EXE file and stops at the requested breakpoints.

It even works when DLL files are dynamically linked (if they are unloaded the blue dots disapear).

The method Gamecat suggested is something I've used before.

Another way is: I have the DLL project, but I also make a "test bench" project. The "test bench" project has one form that can directly exercise the code that would normally be used in a DLL.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM