我的单元终结部分有问题,导致我的 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)
哪个给我(没有值),但是如果我然后检查它,它会在调试检查器中显示单元和过程名称。
有什么方法可以让我将此输出输入到手表中,这样我就不必每次都设置调试检查器,或者我可以将此值作为字符串获取,以使其将要执行的例程输出到事件日志?
如果重要的话,我使用的是 Windows 版本,而不是 Kylix