views:

399

answers:

3

I'm finishing an internship at a company and have just been thrown onto this project for the last month where the program is built upon an engine that they "failed" to buy the source code for. Now I've been given the task of finding out why it is failing, on only certain conditions and customer feedback hasn't been great. The main developer for the project is also out on leave for several months.

I have the engine install and know the language it was written in (delphi6?). note which I have never had to use

I have our products msi.

I'm expected to go through the regular app and pinpoint the problem. I suspect it is something to do with fields not being re-initialized properly.

Is there a way to attach a debugger to the exe to see callstacks and all that hotness?

Any help that would avoid countless use cases would be received gratefully.

+3  A: 

In Delphi 2006 (not sure about 6) you can attach the debugger to a running process. You only get assembler instructions, registers, flags, memory dump and stack (hex). Hope that is enough.

Nice, I tried to attach to the ide/debugger and they disallowed that ;-).

Gamecat
Attaching to a process was available in Delphi 5 so I guess it's there in D6 too.
utku_karatas
You can attach to a *different* instance of the IDE.
Craig Stuntz
+5  A: 

You can attach the Delphi debugger to any running process (like all other win32 debuggers out there) but I don't think the experience will be near what you expect. Delphi produces really tight executables which means the info for building human readable callstacks or any kind of "hotness" are simply not there.

Your only chance is in that if your application is a Debug release. In that case, Delphi debugger should help more than a generic debugger.

You might also want to have a look at this thread - Is there a program to decompile Delphi?

utku_karatas
A: 

Thanks for the suggestions both of you. Will checkout both :)

TEEKAY