From 867e68938f533d8643d6b3b371d958fcbd2624a6 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 2 Dec 2002 01:00:12 +0000 Subject: [PATCH] + Alt+I to disassemble a function from browser window --- ide/fpsymbol.pas | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/ide/fpsymbol.pas b/ide/fpsymbol.pas index 191e0e9256..9971dbd581 100644 --- a/ide/fpsymbol.pas +++ b/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 }