Commit Graph

30 Commits

Author SHA1 Message Date
nickysn
39dbfcc3d5 * fixed gdb/mi crash when program exits with exit code >= $80000000
git-svn-id: trunk@30176 -
2015-03-12 23:25:07 +00:00
pierre
fd33786c67 Fix compilation error if DEBUG is not set, use GDB_RAW_OUTPUT macro
git-svn-id: trunk@30094 -
2015-03-04 15:41:10 +00:00
pierre
7567325417 Added separate GDBRawBuf and output_raw boolean to avoid parsing of raw output
git-svn-id: trunk@30087 -
2015-03-03 21:30:46 +00:00
nickysn
4794b901ae * changed the type of TFrameEntry.address from PtrInt to CORE_ADDR
git-svn-id: trunk@30071 -
2015-03-02 13:43:58 +00:00
nickysn
1e842ffb6f * TGDBMI_Value.AsPtrInt replaced with .AsCoreAddr, which returns CORE_ADDR
instead of PtrInt

git-svn-id: trunk@30070 -
2015-03-02 13:38:01 +00:00
nickysn
2adee6834c * the definition of CORE_ADDR moved from gdbmiint to gdbmiwrap, because we're
going to use it there as well

git-svn-id: trunk@30069 -
2015-03-02 12:20:13 +00:00
nickysn
78676b8f16 + include globdir.inc in the gdb/mi interface units, so that the TARGET_IS_64BIT
define has effect

git-svn-id: trunk@30067 -
2015-03-02 11:28:24 +00:00
pierre
cec67ade78 Use QWORD for CORE_ADDR if TARGET_IS_64BIT macro is set
git-svn-id: trunk@30064 -
2015-03-02 10:37:28 +00:00
pierre
36086cc183 ide/gdbmiint.pas: Add init_count field,
New Set_debuggee_started method to update init_count properly.

  ide/gdbmicon.ppas and packages/gdbint/src/gdbcon.pp:
  Add PrintCommand and PrintFormattedCommand methods to
  allow using of mi command for fpdebug unit TDebugController.GetValue method

  packages/gdbint/src/gdbcon.pp:
  Add InternalGetValue method, that uses previous code from fpdebug GetValue method

git-svn-id: trunk@30043 -
2015-03-01 13:21:26 +00:00
nickysn
d8fe799798 * don't hang in TGDBInterface.WaitForProgramStop if gdb returns an error in
response to the '-exec-continue' command

git-svn-id: trunk@30029 -
2015-02-28 12:55:31 +00:00
nickysn
c62f3ec271 * handle failure in GetFPCBreakErrorParameters and continue execution silently
in a gdb/mi safe way

git-svn-id: trunk@30020 -
2015-02-27 00:34:16 +00:00
nickysn
609ebbe120 - rm unused var
git-svn-id: trunk@30004 -
2015-02-25 02:08:49 +00:00
nickysn
47509b0148 + added parameter BreakIndex (containing the breakpoint index if we stopped on a
breakpoint, or zero otherwise) to DoSelectSourceLine, instead of using
  stop_breakpoint_number
- removed stop_breakpoint_number and all the convoluted logic around it from the
  gdb/mi interface
* made stop_breakpoint_number private in the libgdb.a interface to ensure it's
  only used for internal use; UI code should rely on the new BreakIndex
  parameter instead

git-svn-id: trunk@30003 -
2015-02-25 01:48:23 +00:00
nickysn
ec71e47b83 * fixed various debugger crashes after r29993 - read all information from
ExecAsyncOutput *before* calling DebuggerScreen, because DebuggerScreen may
  call gdb commands, which will clear ExecAsyncOutput (or replace it with
  something entirely different)

git-svn-id: trunk@30002 -
2015-02-25 00:44:37 +00:00
nickysn
7f2dce8f20 * also set got_error to true in case of an error response in i_gdb_command
git-svn-id: trunk@29809 -
2015-02-23 21:15:21 +00:00
nickysn
c5b9465255 * gdb/mi: fixed inserting and stopping on access and read watchpoints
git-svn-id: trunk@29786 -
2015-02-22 01:00:36 +00:00
nickysn
cb983ab42d * fixed gdb/mi crash when a watchpoint goes out of scope
git-svn-id: trunk@29785 -
2015-02-22 00:46:49 +00:00
nickysn
7d040cbe3f * fixed crash when program being debugged in gdb/mi mode receives a signal or
exits due to a signal

git-svn-id: trunk@29784 -
2015-02-22 00:33:10 +00:00
nickysn
850a321a23 + log the error message from gdb/mi error result records to the gdb window
git-svn-id: trunk@29783 -
2015-02-22 00:10:08 +00:00
pierre
97fccfd3bf Also display raw response inside GDB window if DEBUG conditional is set
git-svn-id: trunk@29756 -
2015-02-18 23:43:06 +00:00
nickysn
a861bbc5ae - removed last_breakpoint_number from the gdb/mi interface. It didn't work in
older GDB versions and code in fpdebug.pas should no longer use it. Instead,
  it should use BreakpointInsert or WatchpointInsert for adding a breakpoint or
  watchpoint and getting its ID.

git-svn-id: trunk@29750 -
2015-02-18 05:47:49 +00:00
nickysn
c754fa35d2 * fixed the passing of the breakpoint number to the DoSelectSourceLine method,
in the gdb/mi interface, which fixes various features, such as showing a
  popup window with the old and new value of the variable, when stopping on a
  watch, etc.

git-svn-id: trunk@29749 -
2015-02-18 01:02:53 +00:00
nickysn
9f31c26996 * handle properly stopping on a watchpoint in the gdb/mi debugger
git-svn-id: trunk@29748 -
2015-02-17 23:07:23 +00:00
nickysn
44fb01eae6 + implemented get_current_frame and set_current_frame for gdb/mi
git-svn-id: trunk@29738 -
2015-02-17 02:03:18 +00:00
nickysn
f4e8c9da33 + added the gdb set commands from gdbint.pp to the gdb/mi interface
git-svn-id: trunk@29737 -
2015-02-17 01:43:39 +00:00
nickysn
a47a810475 + implemented gdb/mi backtraces
git-svn-id: trunk@29736 -
2015-02-17 00:59:39 +00:00
nickysn
88fc22a8a3 * fixed crash when stepping into code where no debug information is available
(can happen when using 'step into instruction' inside the assembly window)
* obtain the PC counter after a breakpoint has been hit (so that the assembly
  window shows the current instruction immediately after hitting a breakpoint)

git-svn-id: trunk@29735 -
2015-02-16 23:20:48 +00:00
pierre
95f0791b97 + Add (not yet implemented) inferior_pid function to allow compilation of windebug unit
+ Add using_cygwin_gdb boolean, set by parsing version output

git-svn-id: trunk@29728 -
2015-02-16 20:48:38 +00:00
nickysn
8f9c062e4d * fixed Run->"Until return" in the GDB/MI debugger
git-svn-id: trunk@29717 -
2015-02-16 02:25:53 +00:00
nickysn
a939ea06b6 + initial implementation of GDB/MI (without LibGDB!) support for the text mode
IDE. Tested under Linux (Fedora 21 - x86_64, GDB 7.8.2). It is still disabled
  by default on all platforms. To enable it, build a snapshot with:
  FPMAKEOPT="--ignoreinvalidoption --GDBMI=1"
  Known issue: the GDB window in the IDE causes crashes, so don't open it :)
  (for debugging purposes, set the environment variable FPIDE_GDBLOG=1 when
  running the IDE and it will log everything in gdblog.txt)

git-svn-id: trunk@29716 -
2015-02-16 01:07:37 +00:00