From 74f3158cb14f7abb8dd563954a79b9e01c4c8f7f Mon Sep 17 00:00:00 2001 From: "Alexander S.Kresin" Date: Wed, 17 Jul 2002 08:17:49 +0000 Subject: [PATCH] 2002-07-17 12:30 UTC+0300 Alexander Kresin --- harbour/ChangeLog | 5 +++++ harbour/source/debug/debugger.prg | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 4bf6046af0..926c1ab172 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,11 @@ 2002-12-01 23:12 UTC+0100 Foo Bar */ + +2002-07-17 12:30 UTC+0300 Alexander Kresin + * source/debug/debugger.prg + ! Bugs fixed with codeblocks processing + 2002-07-17 11:10 UTC+0300 Alexander Kresin * source/debug/debugger.prg ! A bug fixed in commands evaluation diff --git a/harbour/source/debug/debugger.prg b/harbour/source/debug/debugger.prg index bce9bb823c..19f4d195fc 100644 --- a/harbour/source/debug/debugger.prg +++ b/harbour/source/debug/debugger.prg @@ -137,6 +137,14 @@ procedure __dbgEntry( uParam1, uParam2, uParam3 ) // debugger entry point if s_oDebugger != nil if PCount() == 3 // called from hvm.c hb_vmLocalName() and hb_vmStaticName() + if cProcName == "__EVAL" .OR. cProcName == "EVAL" + if !s_oDebugger:lCodeblock + ASize( s_oDebugger:aCallStack, Len( s_oDebugger:aCallStack ) + 1 ) + AIns( s_oDebugger:aCallStack, 1 ) + s_oDebugger:aCallStack[ 1 ] := { cProcName, {} } + s_oDebugger:lCodeblock := .T. + endif + endif if uParam3 == 1 // in-function static variable cStaticName := uParam2 nStaticIndex := uParam1 @@ -193,6 +201,9 @@ procedure __dbgEntry( uParam1, uParam2, uParam3 ) // debugger entry point return endif if s_oDebugger != nil + if s_oDebugger:lCodeblock + s_oDebugger:lCodeblock := .F. + endif s_oDebugger:EndProc() s_oDebugger:LoadVars() endif @@ -216,6 +227,7 @@ CLASS TDebugger DATA lShowPublics, lShowPrivates, lShowStatics, lShowLocals, lAll DATA lShowCallStack DATA nTraceLevel + DATA lCodeblock INIT .F. METHOD New() METHOD Activate( cModuleName ) @@ -2100,9 +2112,7 @@ static function DoCommand( o,cCommand ) for i := 1 to nLocals vtmp := __mvGet( o:aCallStack[1][2][i][1] ) if !(Valtype( vtmp ) $ "AO") - if vtmp != __vmVarLGet( nProcLevel, o:aCallStack[1][2][i][2] ) - __vmVarLSet( nProcLevel, o:aCallStack[1][2][i][2], vtmp ) - endif + __vmVarLSet( nProcLevel, o:aCallStack[1][2][i][2], vtmp ) endif next