Debugging Tools for Windows

.fpo (Control FPO Overrides)

.fpo 命令控制帧指针省略(frame pointer omission (FPO)) 重载。

语法

.fpo -s [-fFlagAddress 
.fpo -d Address 
.fpo -x Address 
.fpo -o Address 
.fpo Address 

参数

-s
设置在指定地址进行FPO重载。
-fFlag
指定重载的FPO标志。在-fFlag间不能加入空格。如果标志有参数,在标志和参数之间必须加入一个空格。如果有多个标志,则必须重复-f 开关(例如 -fb -fp 4 -fe)。-f 开关必须和-s一起使用。 Flag 可以使用下面的值之一。
标志 作用
b fUseBP 设置为 TRUE。
e fUseSEH 设置为TRUE。
n cbFrame 设置为 FRAME_NONFPO。(默认情况下cbFrame是设置为FRAME_FPO。)
l Term cdwLocals设置为TermTerm 要指定成需要的局部DWORD的数量。
p Term cdwParams 设置为TermTerm 要指定成需要的参数DWORD的数量。
r Term cbRegs 设置为TermTerm 要指定为希望的寄存器个数。
s Term cbProcSize 设置为 Term. Term 应该指定希望的例程(procedure)大小。
t Term cbFrame 设置为TermTerm 应该指定为下面的帧类型之一:
  • FRAME_FPO 0
  • FRAME_TRAP 1
  • FRAME_TSS 2
  • FRAME_NONFPO 3

Address
指定调试器要设置或取消重载的地址,或者要显示重载设置的地址。该地址必须再当前模块列表中的某个模块中。
-d
取消指定地址处的FPO重载。
-x
取消包含Address 地址的模块中的所有FPO重载。
-o
显示包含Address 地址的模块中的所有FPO重载。

环境

模式 用户模式、内核模式
目标 活动目标、崩溃转储
平台 所有

注释

不带参数时,.fpo 命令显示指定地址处的FPO重载信息。

一些编译器(包括Microsoft Visual Studio 6.0 和之前的版本)会创建FPO信息来指示堆栈帧是如何设置的。在堆栈回溯时,调试器需要使用FPO记录来分析堆栈。如果编译器创建了不正确的FPO信息,可以使用.fpo 命令来修正。

Build machine: CAPEBUILD