.fpo (Control FPO Overrides)
The .fpo command controls the frame pointer omission (FPO) overrides.
.fpo -s [-fFlag] Address
.fpo -d Address
.fpo -x Address
.fpo -o Address
.fpo Address
-s
Sets an FPO override at the specified address.
-fFlag
Specifies FPO flags for the override. You must not add a space between -f and Flag. If the flag takes an argument, you must add a space between the flag and that argument. If you want multiple flags, you must repeat the -f switch (for example, -fb -fp 4 -fe). You can use the -f switch only with -s. You can use one of the following values for Flag.
Flag | Effect |
---|---|
b |
Sets fUseBP equal to TRUE. |
e |
Sets fUseSEH equal to TRUE. |
n |
Sets cbFrame equal to FRAME_NONFPO. (By default, cbFrame is set to FRAME_FPO.) |
l Term |
Sets cdwLocals equal to Term. Term should specify the local DWORD count that you want. |
p Term |
Sets cdwParams equal to Term. Term should specify the parameter DWORD count that you want. |
r Term |
Sets cbRegs equal to Term. Term should specify the register count that you want. |
s Term |
Sets cbProcSize equal to Term. Term should specify the procedure size that you want. |
t Term |
Sets cbFrame equal to Term. Term should specify one of the following frame types:
|
Address
Specifies the address where the debugger sets or removes the override or the address whose overrides the debugger should display. This address must be within a module in the current module list.
-d
Removes the FPO overrides at the specified address.
-x
Removes all FPO overrides within the module that contains the Address address.
-o
Displays all FPO overrides within the module that contains the Address address.
Item | Description |
---|---|
Modes | User mode, kernel mode |
Targets | Live, crash dump |
Platforms | All |
Without parameters, the .fpo command displays the FPO overrides for the specified address.
Some compilers (including Microsoft Visual Studio 6.0 and earlier versions) generate FPO information to indicate how the stack frame is set up. During stack walking, the debugger uses these FPO records to understand the stack. If the compiler generated incorrect FPO information, you can use the .fpo command to fix this problem.