Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi 5 Debugger problem on W2K

113 views
Skip to first unread message

Colin Attwell

unread,
Feb 21, 2002, 10:53:47 AM2/21/02
to
I'm experiencing an annoying problem with D5 Ent on my W2kSP2 box where
every third or fourth run of the debugger it fails to stop executing
when the app under debug is shutdown. Task manager shows one thread (on
the app) still running, but it can't be terminated (Access denied or
something). Trying to stop the program from the IDE doesn't work either,
I get the "Debugger is already running" error (like I didn't know that,
hey). The only solution I've found requires re-booting the m/c, the
novelty of which wore off after the first 20,000 times I had to do it.

What is the fix (short of D6 - which I can only get in next quarter's
budget !) or porting it all over to BCB5?

Additional info:-

I also have BCB5 Ent on the same m/c, which was installed before I
installed D5. The debugger DLL for D5 seems to be bordbk50.dll whilst
for BCB5 it is bordbk51.dll. Should I strive to use the ...51.dll with
D5, can I do that, if so, how might I do it.

I have also installed the D5 Ent patch, but it didn't help the problem.

m/c is 1.5G P4, 256MRam, 20G h/d, Matrox Millenium G450 DualHead LX
adapter.


Any suggestions appreciated !

Colin Attwell

unread,
Feb 22, 2002, 11:40:47 AM2/22/02
to

Colin Attwell wrote:

> Any suggestions appreciated !


In System.pas:

procedure _Halt0;
var
P: procedure;
begin

if InitContext.DLLInitState = 0 then
while ExitProc <> nil do
begin
@P := ExitProc;
ExitProc := nil;
P;
end;

{ If there was some kind of runtime error, alert the user }

if ErrorAddr <> nil then
begin
MakeErrorMessage;
if IsConsole then
WriteLn(PChar(@runErrMsg))
else if not NoErrMsg then
MessageBox(0, runErrMsg, errCaption, 0);
ErrorAddr := nil;
end;

{ This loop exists because we might be nested in PackageLoad calls
when }
{ Halt got called. We need to unwind these
contexts. }

while True do
begin

{ If we are a library, and we are starting up fine, there are no
units to finalize }

if (InitContext.DLLInitState = 2) and (ExitCode = 0) then
InitContext.InitCount := 0;

{ Undo any unit initializations accomplished so far }

FInitUnits;

if (InitContext.DLLInitState <= 1) or (ExitCode <> 0) then
if InitContext.Module <> nil then
with InitContext do
begin
UnregisterModule(Module);
if Module.ResInstance <> Module.Instance then
FreeLibrary(Module.ResInstance);
end;

UnsetExceptionHandler;

if InitContext.DllInitState = 1 then
InitContext.ExitProcessTLS;

if InitContext.DllInitState <> 0 then
ExitDll;

if InitContext.OuterContext = nil then
ExitProcess(ExitCode); <------------------ Does not return from
this Call

InitContext := InitContext.OuterContext^
end;

Come on ANYBODY ??? Surely I'm not the only Delphi sucker to get this
bug....

0 new messages