Selaa lähdekoodia

+ Alt+I to disassemble a function from browser window

pierre 23 vuotta sitten
vanhempi
commit
867e68938f
1 muutettua tiedostoa jossa 34 lisäystä ja 1 poistoa
  1. 34 1
      ide/fpsymbol.pas

+ 34 - 1
ide/fpsymbol.pas

@@ -187,6 +187,7 @@ type
       procedure   Close; virtual;
       procedure   SelectTab(BrowserTab: Sw_integer); virtual;
       function    GetPalette: PPalette; virtual;
+      function    Disassemble : boolean;
       destructor  Done;virtual;
     private
       PageTab       : PBrowserTab;
@@ -1650,6 +1651,9 @@ begin
         case Event.KeyCode of
           kbEsc :
             Close;
+          kbAltI :
+            If not Disassemble then
+              DontClear:=true;
         else DontClear:=true;
         end;
         if DontClear=false then ClearEvent(Event);
@@ -1658,6 +1662,32 @@ begin
   inherited HandleEvent(Event);
 end;
 
+function TBrowserWindow.Disassemble : boolean;
+begin
+  Disassemble:=false;
+  if not assigned(sym) or (sym^.typ<>procsym) then
+    exit;
+  { We need to load exefile }
+{$ifndef NODEBUG}
+  InitGDBWindow;
+  if not assigned(Debugger) then
+    begin
+      new(Debugger,Init);
+      if assigned(Debugger) then
+        Debugger^.SetExe(ExeFile);
+    end;
+  if not assigned(Debugger) or not Debugger^.HasExe then
+    exit;
+  { goto source/assembly mixture }
+  InitDisassemblyWindow;
+  DisassemblyWindow^.LoadFunction(Sym^.GetName);
+  DisassemblyWindow^.SelectInDebugSession;
+  Disassemble:=true;
+{$else NODEBUG}
+  NoDebugger;
+{$endif NODEBUG}
+end;
+
 procedure TBrowserWindow.SetState(AState: Word; Enable: Boolean);
 {var OldState: word;}
 begin
@@ -1819,7 +1849,10 @@ end;
 END.
 {
   $Log$
-  Revision 1.5  2002-09-07 15:40:45  peter
+  Revision 1.6  2002-12-02 01:00:12  pierre
+   + Alt+I to disassemble a function from browser window
+
+  Revision 1.5  2002/09/07 15:40:45  peter
     * old logs removed and tabs fixed
 
 }