1

在 Delphi debugAPI 中,有几个对 a 的引用,FrameIndex例如:

 unit DebugAPI;
 interface
 type

  IOTADebugger = interface(IInterface)
    function CanToggleBreakpointOnFrame(FrameIndex: Integer): Boolean;
    function GetSupportedRunParametersCommands: TRunParametersCommands;
    function CanSetNextStatement(const Filename: string;
      LineNumber: Integer): Boolean;
    procedure ProcessDebugEvents;
    function FrameHasDebugInfo(FrameIndex: Integer): Boolean;
    function GetDisplayableDebuggerName: string;
    function GetFrameBreakpoint(FrameIndex: Integer): IOTABreakpoint;
    procedure ToggleBreakpointOnFrame(FrameIndex: Integer);
    .....

有几个方法接受一个FrameIndex参数,但是,什么是FrameIndex?我可以在哪里获得FrameIndex

4

1 回答 1

4

这是指调用堆栈帧。这是一个鲜为人知的功能,您可以在调用堆栈中的项目上设置断点。

然后当您运行时,当您返回该函数时,调试器将中断。调试器通过在调用堆栈中该条目的返回地址设置断点来实现此功能。

例如,这是一个简单的调用堆栈,我在调用堆栈中的一个项目上放置了一个断点:

在此处输入图像描述

调用堆栈窗口中的图标指示是否有调试信息,是否设置了断点等。完整的详细信息可以在文档中找到:调用堆栈窗口

于 2017-05-30T15:21:44.147 回答