mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 18:39:52 +02:00
FpDebug: fixes for stack frame search
This commit is contained in:
parent
46dfa16fb4
commit
97c7e680b7
@ -5221,7 +5221,7 @@ function TX86AsmDecoder.UnwindFrame(var AnAddress, AStackPtr,
|
|||||||
|
|
||||||
function IsRegister(Val, Reg: String): boolean;
|
function IsRegister(Val, Reg: String): boolean;
|
||||||
begin
|
begin
|
||||||
Result := (Length(val) >= 2) and (val[1] in ['r', 'e']) and (strlcomp(@Val[2], PChar(Reg), Length(Reg)) = 0);
|
Result := (Length(Val) = Length(Reg) + 1) and (Length(val) >= 2) and (val[1] in ['r', 'e']) and (strlcomp(@Val[2], PChar(Reg), Length(Reg)) = 0);
|
||||||
end;
|
end;
|
||||||
function RegisterSize(Reg: String): Cardinal;
|
function RegisterSize(Reg: String): Cardinal;
|
||||||
begin
|
begin
|
||||||
@ -5258,7 +5258,9 @@ begin
|
|||||||
instr := TX86AsmInstruction(GetInstructionInfo(NewAddr));
|
instr := TX86AsmInstruction(GetInstructionInfo(NewAddr));
|
||||||
if instr.InstructionLength <= 0 then
|
if instr.InstructionLength <= 0 then
|
||||||
exit;
|
exit;
|
||||||
|
{$PUSH}{$R-}{$Q-}
|
||||||
NewAddr := NewAddr + instr.InstructionLength;
|
NewAddr := NewAddr + instr.InstructionLength;
|
||||||
|
{$POP}
|
||||||
CurAddr := @instr.FCodeBin[0];
|
CurAddr := @instr.FCodeBin[0];
|
||||||
|
|
||||||
case instr.X86OpCode of
|
case instr.X86OpCode of
|
||||||
|
Loading…
Reference in New Issue
Block a user