mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 11:00:24 +02:00
FpDebug: More asm-unwind improvements
This commit is contained in:
parent
c36f3fe0a5
commit
2594469911
@ -5881,7 +5881,7 @@ begin
|
|||||||
if NewStack >= StartStack then begin
|
if NewStack >= StartStack then begin
|
||||||
RSize := RegisterSize(instr.X86Instruction.Operand[1].Value);
|
RSize := RegisterSize(instr.X86Instruction.Operand[1].Value);
|
||||||
if not FProcess.ReadData(NewStack, RSize, NewFrame, RSize) then begin
|
if not FProcess.ReadData(NewStack, RSize, NewFrame, RSize) then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
@ -5913,14 +5913,14 @@ begin
|
|||||||
NewFrame := 0;
|
NewFrame := 0;
|
||||||
if FProcess.Mode = dm32 then begin
|
if FProcess.Mode = dm32 then begin
|
||||||
if not FProcess.ReadData(NewStack, 4, NewFrame, RSize) then begin
|
if not FProcess.ReadData(NewStack, 4, NewFrame, RSize) then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
inc(NewStack, 4);
|
inc(NewStack, 4);
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
if not FProcess.ReadData(NewStack, 8, NewFrame, RSize) then begin
|
if not FProcess.ReadData(NewStack, 8, NewFrame, RSize) then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
inc(NewStack, 8);
|
inc(NewStack, 8);
|
||||||
@ -5975,7 +5975,7 @@ begin
|
|||||||
(Instr.X86Instruction.Operand[2].ByteCount2 <> 0) or
|
(Instr.X86Instruction.Operand[2].ByteCount2 <> 0) or
|
||||||
not(ofMemory in Instr.X86Instruction.Operand[2].Flags)
|
not(ofMemory in Instr.X86Instruction.Operand[2].Flags)
|
||||||
then begin
|
then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -6073,7 +6073,7 @@ begin
|
|||||||
not(ofMemory in Instr.X86Instruction.Operand[1].Flags)
|
not(ofMemory in Instr.X86Instruction.Operand[1].Flags)
|
||||||
then begin
|
then begin
|
||||||
if not ValueFromOperand(instr.X86Instruction.Operand[2], Tmp) then begin
|
if not ValueFromOperand(instr.X86Instruction.Operand[2], Tmp) then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
{$PUSH}{$R-}{$Q-}
|
{$PUSH}{$R-}{$Q-}
|
||||||
@ -6106,7 +6106,7 @@ begin
|
|||||||
not(ofMemory in Instr.X86Instruction.Operand[1].Flags)
|
not(ofMemory in Instr.X86Instruction.Operand[1].Flags)
|
||||||
then begin
|
then begin
|
||||||
if not ValueFromOperand(instr.X86Instruction.Operand[2], Tmp) then begin
|
if not ValueFromOperand(instr.X86Instruction.Operand[2], Tmp) then begin
|
||||||
ForceDifferentBranch := True;
|
NewFrame := 0;
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
{$PUSH}{$R-}{$Q-}
|
{$PUSH}{$R-}{$Q-}
|
||||||
|
Loading…
Reference in New Issue
Block a user