Commit Graph

235 Commits

Author SHA1 Message Date
martin
c84d9e5bfe LazDebugFp, FpDebug: TestAssert does not set exception frame. Search by IP address
git-svn-id: trunk@63535 -
2020-07-08 22:39:00 +00:00
martin
69ee06144d FpDebug: Fix searching frame by BasePointer
git-svn-id: trunk@63533 -
2020-07-08 22:38:56 +00:00
martin
57f2930395 FpDebug: Pause at hardcoded int3
git-svn-id: trunk@63513 -
2020-07-05 19:16:59 +00:00
martin
b9173dead1 FpDebug: Added workaround for frame detection. Exceptions stops at entry point, and there can not yet be a frame.
git-svn-id: trunk@63461 -
2020-06-28 14:43:13 +00:00
martin
5d80c349fb FpDebug: find stackframe for exception
git-svn-id: trunk@63459 -
2020-06-28 14:43:10 +00:00
martin
a62432ac71 FpDebug: Fixed reading memory for #0 terminated string data
git-svn-id: trunk@63393 -
2020-06-18 19:56:30 +00:00
martin
f59a294a01 FpDebug: Fixed reading memory for #0 terminated string data
git-svn-id: trunk@63391 -
2020-06-18 18:06:26 +00:00
martin
24b1e22d91 FpDebug: Windows, show dll-entrypoint+offs in stack/thread list
git-svn-id: trunk@63387 -
2020-06-18 02:13:00 +00:00
martin
1b2bf99ec1 FpDebug: refactor showing exception details
git-svn-id: trunk@63380 -
2020-06-17 16:52:12 +00:00
martin
10fafd96d0 FpDebug: remove deprecated FindContext(address-only)
git-svn-id: trunk@63364 -
2020-06-16 19:57:29 +00:00
martin
c41f071d7b FpDebug: Context for unknown location
git-svn-id: trunk@63363 -
2020-06-16 19:57:27 +00:00
martin
a43e155cdb FpDebug, Debuggers, IDE: Make MemManager easier to access. (via Controller and Instance)
git-svn-id: trunk@63358 -
2020-06-16 13:42:42 +00:00
martin
074fc3b2f0 FpDebug: Fix "stepped out" detection for step-over/in. Do not stop an "leave" command.
git-svn-id: trunk@63061 -
2020-04-24 20:08:11 +00:00
martin
f2d5fd797b FpDebug: Refactor storing/comparing stack-pointer/frame for step-out detection. Allow different architectures to provide sub-classes
git-svn-id: trunk@63060 -
2020-04-24 20:08:09 +00:00
martin
ea30b6f6b9 FpDebug: Detect internal forwarding jumps, and avoid stopping at them
git-svn-id: trunk@63033 -
2020-04-20 15:31:45 +00:00
martin
62facbb44d Renamed TDbgDisassembler class and all related classes to avoid name clashes with FpDebugDebugger classes.
Patch/Contributed by ccrause

git-svn-id: trunk@62757 -
2020-03-12 14:21:17 +00:00
martin
121b9389ee Naive implementation of reverse disassembling
Patch/Contributed by ccrause

git-svn-id: trunk@62754 -
2020-03-12 14:21:12 +00:00
martin
6d6903e246 Introduce minimum and maximum instruction size properties to TDbgDisassembler. This is useful for buffering calculations, also in reverse disassembling. Preread required memory before disassembling to reduce impact of remote target access
Patch/Contributed by ccrause

git-svn-id: trunk@62753 -
2020-03-12 14:21:10 +00:00
martin
b014fcdeeb Let the TProcess call decide, if calls must be made in the correct thread (debugger-thread). Linux/trace only allows the dbg thread access.
git-svn-id: trunk@62752 -
2020-03-12 14:21:08 +00:00
martin
8877a5b195 Change Insert/RemoveBreakInstructionCode to virtual because this implementation refers to target specific functionality (int3)
Patch/Contributed by ccrause

git-svn-id: trunk@62749 -
2020-03-12 14:20:34 +00:00
martin
2ee9c0fe84 FpDebug: New TTargetDescriptor type used to store target specific information. All target specific classes are automatically registered in the respective initialization sections. TDbgController.Run modified to call CheckExecutableAndLoadClasses which loads target info from specified file, loads global disassembler instance and DbgProcess class. Patch/Contributed by ccrause
git-svn-id: trunk@62748 -
2020-03-12 14:20:33 +00:00
martin
2e1bd02f2d FpDebug: Refactor OsDbgClasses => move as field to DbgController and DbgProcess / Prepare for target specific classes
git-svn-id: trunk@62747 -
2020-03-12 14:09:16 +00:00
martin
676c17f1cf FpDebug: Refactor disassembler into class
git-svn-id: trunk@62746 -
2020-03-12 14:09:14 +00:00
martin
98aa637a42 FpDebug: debugln
git-svn-id: trunk@62406 -
2019-12-16 23:22:53 +00:00
martin
9a11939004 FpDebug: Fix range check (addresses in target are allowed to overflow)
git-svn-id: trunk@62386 -
2019-12-14 15:56:26 +00:00
martin
489625b121 FpDebug, LazDebuggerFp: Implement step to except/finally / step over ignored exception
git-svn-id: trunk@62344 -
2019-12-08 00:18:17 +00:00
martin
c1611124b4 FpDebug: Added methods to add disabled breakpoints, and modify existing
git-svn-id: trunk@62343 -
2019-12-08 00:18:15 +00:00
martin
b34bc4a730 FpDebug, LazDebuggerFp: Implemented OnLibrary(Un)LoadedEvent / Show in event log
git-svn-id: trunk@62340 -
2019-12-08 00:18:10 +00:00
martin
9cd1e928d5 FpDebug, LazDebuggerFp: Use FindProc instead of FindContext to get SymbolInfo entries
git-svn-id: trunk@62339 -
2019-12-08 00:18:09 +00:00
martin
2dd36b3cd8 FpDebug: FPC sets some lines to line-num=0 => map them to the next avail line. This will at least be somewhere around the correct location.
git-svn-id: trunk@62337 -
2019-12-08 00:18:05 +00:00
martin
f64a5f7d3b FpDebug: Rewrite of Step-In/Over/Out. Now handle (end-)stepping after leaving current procedure (i.e step to the outer line end, according to "In" or "Over")
git-svn-id: trunk@62336 -
2019-12-08 00:18:03 +00:00
martin
751d6dd60d FpDebug: Start basic detection of frame-base
git-svn-id: trunk@62174 -
2019-11-03 17:05:38 +00:00
martin
5f2f41dd34 FpDebug: Allow to create contexct from known ProcSym / Updated TDbgCallstackEntry.GetParamsAsString / Avoid double look-up of proc-symbol
git-svn-id: trunk@62172 -
2019-11-03 17:05:35 +00:00
martin
1739434138 FpDebug: fix range check error in FindProcSymbol. (int64 vs qword).
git-svn-id: trunk@62138 -
2019-10-28 17:07:04 +00:00
martin
ec3e5b6a07 FpDebug: fix crash on nil-deref.
- On Windows FCurrentThread is nil during the ExitProcess event.
- On all platforms CreateThread can (in theory) return nil.

git-svn-id: trunk@62034 -
2019-10-11 12:07:19 +00:00
martin
5ff6c5c0c1 FpDebug: Partial implement WatchPoints.
- No local watches yet. Always global scope.
- Break on Write is the same Read/Write
- Info pop up has no old/new value
- No feedback (in some cases) if watch failed to set

git-svn-id: trunk@61990 -
2019-10-05 11:09:49 +00:00
martin
a631e91e53 FpDebug: rename TFpInternalBreakpointBase into TFpDbgBreakpoint / Make other packages use TFpDbgBreakpoint instead of internal class.
git-svn-id: trunk@61987 -
2019-10-05 11:09:44 +00:00
martin
9b5b0c8db2 FpDebug: Check stackframe for FindContext in range / out of index
git-svn-id: trunk@61985 -
2019-10-05 11:09:40 +00:00
martin
fa44aa0f0b LazDebuggerFp, FpDebug: Refactor FindContext
git-svn-id: trunk@61968 -
2019-10-03 18:38:11 +00:00
martin
3e1d403bae LazDebuggerFp, FpDebug: Attach and Detach (Windows/Linux)
Attach on Linux does not work for apps started with "run without debugging". (Maybe/Probably because the IDE does a separate waitpid on those, and interferes with the waitpid of the debugger?)

git-svn-id: trunk@61967 -
2019-10-03 18:38:10 +00:00
martin
cc3a453334 FpDebug: Remove circular cache for ValueObject.
git-svn-id: trunk@61951 -
2019-09-29 21:43:51 +00:00
martin
495c172050 FpDebug: Remove LastMember for structures (part of circle ref with StructureValue)
git-svn-id: trunk@61950 -
2019-09-29 21:43:49 +00:00
martin
2ec08f8a9c FpDebug: rename TDbgInfo.FindSympol into FindProcSymbol
git-svn-id: trunk@61936 -
2019-09-28 19:08:13 +00:00
martin
9b5a4935a0 FpDebug: fix wrong type for bound-symbol fields / Enable TypedAddress
git-svn-id: trunk@61918 -
2019-09-24 23:36:37 +00:00
martin
4137324e48 FpDebug: Check result of ReadThreadState. Do not use invalid data (on windows this lead to nil deref crash)
git-svn-id: trunk@61891 -
2019-09-16 21:49:25 +00:00
martin
151412f007 FpDebug: improve stepping.
Refactor: Capture initial data before DoContinue
Fix/Improve: Only check and continue the thread that is stepped / Make HiddenBreakpoint hidden from the rest of the controller.

git-svn-id: trunk@61873 -
2019-09-14 14:27:41 +00:00
martin
cae3f56d05 FpDebug: fixed nil pointer crash when clearing breakpoints, after the debugged app exited.
git-svn-id: trunk@61865 -
2019-09-12 15:33:11 +00:00
martin
304f6e7be9 FpDebug: Fix requesting process to pause, broken in r61840 #ece9967721
git-svn-id: trunk@61845 -
2019-09-08 23:33:01 +00:00
martin
ece9967721 FpDebug: Keep the loop running, if internal stepping causes deBreakPoint without actually hitting a breakpoint. Required because now there can be several such singlesteps in one iteration of the loop.
git-svn-id: trunk@61840 -
2019-09-08 19:03:11 +00:00
martin
876682fc9d FpDebug: Handle hitting breakpoints, that have been removed while the event was waiting. Still need to re-execute the asm instruction that was hidden by int3
git-svn-id: trunk@61839 -
2019-09-08 19:03:09 +00:00
martin
addf952338 FpDebug: Less debugln noise when checking if break exists
git-svn-id: trunk@61818 -
2019-09-05 20:05:57 +00:00
martin
d9731de769 FpDebug, LazDebuggerFp: More debugln for Breakpoints
git-svn-id: trunk@61817 -
2019-09-05 20:05:55 +00:00
martin
c86c8d65e6 FpDebug: reduce logged errors for messages that are expected (cannot write to terminated process)
git-svn-id: trunk@61816 -
2019-09-05 20:05:54 +00:00
martin
00417e251e FpDebug: Fix stackframe evaluation / In some cases (if stack win was closed, when brk-point hit) only the top frame was displayed.
git-svn-id: trunk@61806 -
2019-09-02 00:44:52 +00:00
martin
9fedf06c5f FpDebug: fix context (crash) during stack eval / currently unused code
git-svn-id: trunk@61805 -
2019-09-02 00:44:50 +00:00
martin
5a7c9f1487 FpDebug: Refactor class names for TFpDbgValue and TFpDbgSymbol descendants.
git-svn-id: trunk@61722 -
2019-08-18 13:43:45 +00:00
martin
8874afbe6a FpDebug/LazDebuggerFp: Refactor logging, use LazLogger for all logging.
git-svn-id: trunk@61427 -
2019-06-19 15:26:22 +00:00
martin
a2744edd0a FpDebug: clean up
git-svn-id: trunk@61420 -
2019-06-18 18:39:24 +00:00
martin
2fe7c631b4 FpDebug: Fix context for register on higher/non-existing stack frames (count vs index) / refactor
git-svn-id: trunk@60358 -
2019-02-07 17:40:20 +00:00
mattias
68aeaf0590 fpdebug: clean up
git-svn-id: trunk@60347 -
2019-02-06 08:19:51 +00:00
martin
dac68e42e2 FpDebug, LazDebuggerFp: fix last frame in stack list / allow evaluate more frames
git-svn-id: trunk@60335 -
2019-02-04 18:26:11 +00:00
martin
6f10746551 FpDebug: Fix breakpoint not applied / left over old code
git-svn-id: trunk@60213 -
2019-01-25 00:42:50 +00:00
martin
88aca89865 FpDebug: More refactor internal breakpoints. More control to OS classes. Improve stopping other threads on Linux
git-svn-id: trunk@60160 -
2019-01-23 21:28:44 +00:00
martin
2bf19a2135 FpDebug: fix removing internal breakpoints / fix crash on remove
git-svn-id: trunk@60152 -
2019-01-23 00:49:43 +00:00
martin
a48c9c1b69 FpDebug: More refactor internal breakpoints. Move detection for ResetInstructionPointerAfterBreakpoint into OS classes.
git-svn-id: trunk@60142 -
2019-01-22 02:11:44 +00:00
martin
ba83c710cd FpDebug: Start refactor internal breakpoints. Prepare to allow several breakpoints set at the same address.
git-svn-id: trunk@60123 -
2019-01-20 19:09:46 +00:00
martin
95d1609a43 FpDebug: add enumerator for threadmap
git-svn-id: trunk@60095 -
2019-01-16 22:32:49 +00:00
martin
7ccec4c206 FpDebug: Callstack, adjust to show the current calling line, instead of the line after it. Issue #0034753
git-svn-id: trunk@59978 -
2019-01-03 00:12:02 +00:00
martin
88767bcd81 LazDebuggerFp: Fix, Step-over did not stop, if an "auto-continue/none-break" breakpoint was encountered at the end of the step. (the auto continue took priority over the end-of-step)
git-svn-id: trunk@59816 -
2018-12-13 15:16:32 +00:00
martin
bba050e333 FpDebug: Disable assert, until fixed
git-svn-id: trunk@59727 -
2018-12-04 17:12:05 +00:00
martin
2cace808be LazDebuggerFp, FpDebug: (windows only) implemented switching threads while paused. (On Linux only one thread is currently paused, so switching is not possible)
git-svn-id: trunk@59571 -
2018-11-17 14:16:09 +00:00
martin
c54639d227 FpDebug: Allow to specify poNewConsole on windows
git-svn-id: trunk@59488 -
2018-11-07 23:13:11 +00:00
martin
54445f8381 LazDebuggerFP: fix (stackframe) register for 64bit app / enable watches,locals on selected stackframe
git-svn-id: trunk@58200 -
2018-06-09 12:35:00 +00:00
joost
317bc74ea3 fpdebug: Fill the IDE's list of threads
git-svn-id: trunk@58146 -
2018-06-05 20:44:25 +00:00
joost
1f5eb8d171 fpdebug: Improved handling of threads, removed several assumptions that the main-thread was being debugged
git-svn-id: trunk@58128 -
2018-06-04 21:52:32 +00:00
mattias
09619c5659 fpdebug: clean up
git-svn-id: trunk@57787 -
2018-05-04 10:41:46 +00:00
martin
5562c074da IDE, fpDebug, Debuggers: Deal with source lines that have more than one address (e.g. generics). fpDebug: set breakpoints at all addresses of a line.
git-svn-id: trunk@57782 -
2018-05-03 18:52:41 +00:00
joost
1de2cbf586 general: Updated address of the Free Software Foundation in copyright messages
git-svn-id: trunk@54031 -
2017-01-29 21:04:32 +00:00
mattias
934d3bae21 fpdebug: fixed typo
git-svn-id: trunk@52909 -
2016-09-04 12:18:22 +00:00
martin
0edc9138ee fpdebugger: fix another Free instead of ReleaseRef
git-svn-id: trunk@51580 -
2016-02-10 18:42:51 +00:00
mattias
03c19a6402 fpdebug: fixed TDbgWinProcess.Continue if aThread invalid return false
git-svn-id: trunk@50885 -
2015-12-17 22:08:19 +00:00
mattias
3a33b42792 fpdebug: fixed mem leak
git-svn-id: trunk@50878 -
2015-12-17 21:57:07 +00:00
mattias
e7ce75b682 fpdebug: using Windows W functions
git-svn-id: trunk@50617 -
2015-12-04 19:02:39 +00:00
joost
cfa932781f FpDebugServer: Show function-parameters in callstack
git-svn-id: trunk@49237 -
2015-06-01 20:06:07 +00:00
joost
8d4b6344c0 FpDebugServer: Added basic "evaluate" command
git-svn-id: trunk@49166 -
2015-05-25 15:22:59 +00:00
martin
2c1cc645e3 fpdebug: added params to stack
git-svn-id: trunk@49123 -
2015-05-20 21:00:18 +00:00
martin
aa537ca865 fpdebug: mem leak
git-svn-id: trunk@49087 -
2015-05-18 20:11:46 +00:00
martin
ecf6e6a2a9 fpdebug: fix ebp register for stackframes
git-svn-id: trunk@49028 -
2015-05-15 15:03:04 +00:00
martin
44de4b4034 fpdebug: prevent crash if breakpoint at address already exists (can happen if line info is not read correct / generics?)
git-svn-id: trunk@49000 -
2015-05-12 20:02:18 +00:00
joost
8f9d2106db FpDebug: Re-structured the reading of debug-information from multiple files.
git-svn-id: trunk@48638 -
2015-04-05 20:08:17 +00:00
joost
0923ac9836 FpDebug: - Ability to disable usage of a pseudo-tty
- Ability to supply tty to bind standard input/output to

git-svn-id: trunk@48450 -
2015-03-22 01:08:00 +00:00
joost
f4818c2bfd FpDebug: Do not stop on lines with unknown line info (linenr=0)
git-svn-id: trunk@47222 -
2014-12-19 10:42:19 +00:00
joost
2725568fae FpDebug: Give a warning when the UUID of the dSym-bundle and the debuggee do not match
git-svn-id: trunk@46149 -
2014-09-07 11:25:34 +00:00
joost
9070ac0b2c FpDebugger (pure): Added logging, enable with define DBG_FPDEBUG_VERBOSE
git-svn-id: trunk@46143 -
2014-09-06 18:40:30 +00:00
joost
25ff00e44c FpDebugger (pure): Solved mem-leaks by releasing references to symbols found by FindSymbol
git-svn-id: trunk@46132 -
2014-09-05 16:49:36 +00:00
joost
851695cec4 FpDebugger (native): Fix for setting a breakpoint on the current execution-point
git-svn-id: trunk@46122 -
2014-09-03 20:16:53 +00:00
joost
d28ad93b73 fpDebug: Revert of files accidentally committed in r46119 #afc3882ca7
git-svn-id: trunk@46120 -
2014-09-03 14:44:07 +00:00
joost
afc3882ca7 FpDebug: Disabled range-checking to fix range-check error. The fix in r46105 #bbf07c5bd6 leads to a datastructure which is too large for 32 bit
git-svn-id: trunk@46119 -
2014-09-03 14:39:44 +00:00
joost
ddfbd6ade9 FpDebugger (pure): Fixed mem-leak bij freeing debug-threads
git-svn-id: trunk@46102 -
2014-09-01 16:26:08 +00:00
joost
bdbccce289 FpDebugger (pure): Use a pseudo-terminal instead of pipes to read the debuggees out- and in-put
git-svn-id: trunk@46070 -
2014-08-24 12:22:23 +00:00