I have tried this in various configurations using both of
Borland C++ (BC5) and C++ Builder (BCB).
The BCB version was built in two configurations, built
allowing the compiler to call the linker and built by
explicitly calling the linker.
The BC5 version was also built as above but BC5 has two
linkers, ilink32.exe, the incremental linker of the same
name as the linker in BCB and which was new in BC5 and
tlink32.exe, the then current version of the traditional 32
bit linker used in the Borland C++ series of compilers from
the time 32 bit support was added.
Only when built with BC5 by allowing the compiler to call
the linker or by explicitly calling the linker myself but
using tlink32.exe was a set of executable and dll created
for which td32.exe would step into the dll source code
without manual intervention to load the dll's symbol table.
Because you could step into the dll when the compiler was
allowed to call the linker my conclusion is that you are
using Borland C++ and not C++ Builder. Your complaint that
you cannot step in without manual intervention if you called
the linker directly will most likely be solved by calling
tlink32.exe instead of ilink32.exe
The make files used to build these tests are in a zip file
attached to a message with the subject "various makefiles"
and posted into the group
borland.public.attachments
If you use those make files you must alter some paths. In
the make files I have defined macros which specify the paths
to the various C++ Builder and Borland C++ items on my
machine. Those tools are not likely to be located in those
same paths on your machine so the macros will need to be
altered.
. Ed