Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to debug a DLL file in Delphi

Tags:

c++

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?

like image 937
coolcake Avatar asked Feb 27 '09 10:02

coolcake


2 Answers

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.

like image 71
Chapel Avatar answered Oct 02 '22 02:10

Chapel


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).

like image 42
Toon Krijthe Avatar answered Oct 02 '22 01:10

Toon Krijthe