mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-24 14:19:13 +02:00
LazDebuggerFp: fix asm-step-over wrongly stops at finally block in nested code. Issue #41226
(cherry picked from commit 929c9e68ca
)
This commit is contained in:
parent
3fca59ea2e
commit
f39025ab18
@ -3089,7 +3089,7 @@ begin
|
|||||||
Eax := CurrentThread.RegisterValueList.FindRegisterByDwarfIndex(0).NumValue;
|
Eax := CurrentThread.RegisterValueList.FindRegisterByDwarfIndex(0).NumValue;
|
||||||
FAddressFrameListSehW32Finally.RemoveOutOfScopeFrames(EAX, FBreakPoints[bplSehW32Finally]);
|
FAddressFrameListSehW32Finally.RemoveOutOfScopeFrames(EAX, FBreakPoints[bplSehW32Finally]);
|
||||||
|
|
||||||
if (ACurCommand is TDbgControllerLineStepBaseCmd) and
|
if (ACurCommand is TDbgControllerHiddenBreakStepBaseCmd) and
|
||||||
not CheckCommandFinishesInFrame(Eax)
|
not CheckCommandFinishesInFrame(Eax)
|
||||||
then
|
then
|
||||||
exit;
|
exit;
|
||||||
@ -3200,7 +3200,7 @@ begin
|
|||||||
if (not CurrentProcess.ReadAddress(R8 + 160, Base)) or (Base = 0) then // RPB at finally
|
if (not CurrentProcess.ReadAddress(R8 + 160, Base)) or (Base = 0) then // RPB at finally
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
if ( (FState = esIgnoredRaise) or (ACurCommand is TDbgControllerLineStepBaseCmd) ) and
|
if ( (FState = esIgnoredRaise) or (ACurCommand is TDbgControllerHiddenBreakStepBaseCmd) ) and
|
||||||
not CheckCommandFinishesInFrame(Base)
|
not CheckCommandFinishesInFrame(Base)
|
||||||
then
|
then
|
||||||
exit;
|
exit;
|
||||||
@ -3312,7 +3312,7 @@ begin
|
|||||||
FBreakPoints[bplSehW64Finally].RemoveAddress(PC);
|
FBreakPoints[bplSehW64Finally].RemoveAddress(PC);
|
||||||
|
|
||||||
// At the start of a finally the BasePointer is in RCX // reg 2
|
// At the start of a finally the BasePointer is in RCX // reg 2
|
||||||
if (ACurCommand is TDbgControllerLineStepBaseCmd) and
|
if (ACurCommand is TDbgControllerHiddenBreakStepBaseCmd) and
|
||||||
not CheckCommandFinishesInFrame(CurrentThread.RegisterValueList.FindRegisterByDwarfIndex(2).NumValue)
|
not CheckCommandFinishesInFrame(CurrentThread.RegisterValueList.FindRegisterByDwarfIndex(2).NumValue)
|
||||||
then
|
then
|
||||||
exit;
|
exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user