在System.FinalizeUnits中,如何在手表中获取过程名称?

时间:2013-09-18 10:11:18

标签: delphi delphi-2006

我的单元的终结部分出现问题,导致我的unloadDLL调用出现死锁。我怀疑它是哪一个,但我喜欢一点确认。

调用代码在system.pas.FinalizeUnits范围内,如下所示:

while Count > 0 do
begin
  Dec(Count);
  InitContext.InitCount := Count;
  P := Table^[Count].FInit;
  if Assigned(P) then
  begin
{$IFDEF LINUX}
    CallProc(P, InitContext.Module^.GOT);
{$ENDIF}
{$IFDEF MSWINDOWS}
    TProc(P)();
{$ENDIF}

其中P是指向单位的终结例程的指针。

当处于调试模式时,我可以评估/修改TProc(P),它给了我(没有值),但是如果我然后检查它,它会在Debug Inspector中显示单元和过程名称。

我有没有办法让这个输出成为一个手表,所以我不必每次都设置Debug Inspector,或者我可以将这个值作为一个字符串来输出它将要执行的例程事件日志?

如果重要我正在使用Windows版本,而不是Kylix

1 个答案:

答案 0 :(得分:1)

调试器手头有调试信息,可以查找功能。但是,据我所知,没有现成的方法可以将相同的信息输入手表。