$ objdump --file-header main.exe
The starting address is reported on the last line. For example:
main.exe: file format pei-i386 architecture: i386, flags 0x0000010a: EXEC_P, HAS_DEBUG, D_PAGED start address 0x00401010
$ gdb main.exe
$ (gdb) break *0x00401010 $ (gdb) run
The program will stop at the given address.
(gdb) break ada_dll.adb:45
Or if you want to break using a symbol on the DLL, you need first to select the Ada language (language used by the DLL).
(gdb) set language ada (gdb) break ada_dll
This will run the program until it reaches the breakpoint that has been set. From that point you can use the standard way to debug a program as described in (see Running and Debugging Ada Programs).
It is also possible to debug the DLL by attaching to a running process.