Przeglądaj źródła

* proper stepping in disassembler window now possible
+ disassembler window to menu added

florian 20 lat temu
rodzic
commit
bff2491c88
4 zmienionych plików z 52 dodań i 15 usunięć
  1. 9 2
      ide/fpide.pas
  2. 20 1
      ide/fpmdebug.inc
  3. 17 11
      ide/fpmrun.inc
  4. 6 1
      ide/fpstre.inc

+ 9 - 2
ide/fpide.pas

@@ -83,6 +83,7 @@ type
       procedure DoOpenGDBWindow;
       procedure DoToggleBreak;
       procedure DoShowCallStack;
+      procedure DoShowDisassembly;
       procedure DoShowBreakpointList;
       procedure DoShowWatches;
       procedure DoAddWatch;
@@ -383,13 +384,14 @@ begin
       NewItem(menu_debug_breakpoint,menu_key_debug_breakpoint, kbCtrlF8, cmToggleBreakpoint, hcToggleBreakpoint,
       NewItem(menu_debug_breakpointlist,'', kbNoKey, cmBreakpointList, hcBreakpointList,
       NewItem(menu_debug_callstack,menu_key_debug_callstack, kbCtrlF3, cmStack, hcStackWindow,
+      NewItem(menu_debug_disassemble,'', kbNoKey, cmDisassemble, hcStackWindow,
       NewLine(
       NewItem(menu_debug_gdbwindow,'', kbNoKey, cmOpenGDBWindow, hcOpenGDBWindow,
       nil
 {$ifdef SUPPORT_REMOTE}
       )
 {$endif SUPPORT_REMOTE}
-      ))))))))))))),
+      )))))))))))))),
     NewSubMenu(menu_tools, hcToolsMenu, NewMenu(
       NewItem(menu_tools_messages,menu_key_tools_messages, kbF11, cmToolsMessages, hcToolsMessages,
       NewItem(menu_tools_msgnext,menu_key_tools_msgnext, kbAltF8, cmToolsMsgNext, hcToolsMsgNext,
@@ -692,6 +694,7 @@ begin
              cmUserScreen    : DoUserScreen;
              cmToggleBreakpoint : DoToggleBreak;
              cmStack         : DoShowCallStack;
+             cmDisassemble   : DoShowDisassembly;
              cmBreakpointList : DoShowBreakpointList;
              cmWatches       :  DoShowWatches;
              cmAddWatch      :  DoAddWatch;
@@ -1243,7 +1246,11 @@ end;
 END.
 {
   $Log$
-  Revision 1.35  2004-12-22 15:24:07  peter
+  Revision 1.36  2005-01-07 21:52:23  florian
+    * proper stepping in disassembler window now possible
+    + disassembler window to menu added
+
+  Revision 1.35  2004/12/22 15:24:07  peter
     * fixed NODEBUG
     * set default target to the default target of the compiler
 

+ 20 - 1
ide/fpmdebug.inc

@@ -133,6 +133,21 @@ begin
 {$endif NODEBUG}
 end;
 
+
+procedure TIDEApp.DoShowDisassembly;
+begin
+{$ifdef NODEBUG}
+  NoDebugger;
+{$else}
+  If not assigned(DisassemblyWindow) then
+    InitDisassemblyWindow
+  else
+    DisassemblyWindow^.MakeFirst;
+  DisassemblyWindow^.LoadFunction('');
+{$endif NODEBUG}
+end;
+
+
 procedure TIDEApp.DoShowRegisters;
 begin
 {$ifdef NODEBUG}
@@ -230,7 +245,11 @@ end;
 
 {
   $Log$
-  Revision 1.6  2002-11-28 12:57:00  pierre
+  Revision 1.7  2005-01-07 21:52:23  florian
+    * proper stepping in disassembler window now possible
+    + disassembler window to menu added
+
+  Revision 1.6  2002/11/28 12:57:00  pierre
    + TransferRemote method added
 
   Revision 1.5  2002/10/30 22:07:11  pierre

+ 17 - 11
ide/fpmrun.inc

@@ -132,15 +132,17 @@ begin
    end;
   { I think we should not try to go deeper !
     if the source is not found PM }
-  While (Debugger^.InvalidSourceLine and
-         Debugger^.IsRunning and
-         not Debugger^.error) do
+
+  { in disassembly windows we should FK }
+  if not(InDisassemblyWindow) then
     begin
-      Inc(Debugger^.HiddenStepsCount);
-      if InDisassemblyWindow then
-        Debugger^.TraceNextI
-      else
-        Debugger^.TraceNext;
+      While (Debugger^.InvalidSourceLine and
+             Debugger^.IsRunning and
+             not Debugger^.error) do
+        begin
+          Inc(Debugger^.HiddenStepsCount);
+          Debugger^.TraceNext;
+        end;
     end;
   Debugger^.AnnotateError;
 {$else NODEBUG}
@@ -239,7 +241,7 @@ begin
       {$I-}
        GetDir(0,oldcurrdir);
        chdir(GetRunDir);
-      {$I+}   
+      {$I+}
       EatIO;
 {$ifdef Unix}
       if (DebuggeeTTY<>'') then
@@ -249,7 +251,7 @@ begin
       DoExecute(ExeFile,GetRunParameters,'','','',exNormal);
       {$I-}
        chdir(oldcurrdir);
-      {$I+}   
+      {$I+}
       EatIO;
       { In case we have something that the compiler touched }
       AskToReloadAllModifiedFiles;
@@ -510,7 +512,11 @@ end;
 
 {
   $Log$
-  Revision 1.9  2004-11-08 20:28:26  peter
+  Revision 1.10  2005-01-07 21:52:23  florian
+    * proper stepping in disassembler window now possible
+    + disassembler window to menu added
+
+  Revision 1.9  2004/11/08 20:28:26  peter
     * Breakpoints are now deleted when removed from source, disabling is
       still possible from the breakpoint list
     * COMPILER_1_0, FVISION, GABOR defines removed, only support new

+ 6 - 1
ide/fpstre.inc

@@ -113,6 +113,7 @@ const
       menu_debug_watches     = '~W~atches';
       menu_debug_breakpointlist = 'Breakpoint ~L~ist';
       menu_debug_gdbwindow   = '~G~DB window';
+      menu_debug_disassemble = '~D~isassemble';
 
       menu_tools             = '~T~ools';
       menu_tools_messages    = '~M~essages';
@@ -1060,7 +1061,11 @@ const
 
 {
   $Log$
-  Revision 1.25  2004-12-19 20:38:35  hajny
+  Revision 1.26  2005-01-07 21:52:23  florian
+    * proper stepping in disassembler window now possible
+    + disassembler window to menu added
+
+  Revision 1.25  2004/12/19 20:38:35  hajny
     + confirmation box after video mode switch (bug 2933)
 
   Revision 1.24  2004/11/21 20:53:26  peter