Commit Graph

120 Commits

Author SHA1 Message Date
joost
a32ac8e665 FpDebug: support more function-arguments (x86_64)
git-svn-id: trunk@64295 -
2020-12-28 21:33:51 +00:00
martin
a869c43f49 FpDebug: fix threadmap iterator in linux classes. Broken by locked-iterator
git-svn-id: trunk@64248 -
2020-12-20 12:38:51 +00:00
martin
3894fe4f86 FpDebug: fix threadmap iterator in linux classes. Broken by locked-iterator
git-svn-id: trunk@64247 -
2020-12-20 11:00:58 +00:00
martin
fa5199045e LazDebuggerFp, FpDebug: Show an error message, if the debugger cannot run the application. Issue #0038167
git-svn-id: trunk@64243 -
2020-12-19 22:39:00 +00:00
joost
539c1f9a2b FpDebug: Renamed TFpDbgHardcodedContext to TFpDbgHardcodedScope
git-svn-id: trunk@63899 -
2020-09-20 19:21:53 +00:00
joost
a733105c1c fpDebug: Ability to do simple function-calls
git-svn-id: trunk@63751 -
2020-08-16 10:20:37 +00:00
martin
1b2bf99ec1 FpDebug: refactor showing exception details
git-svn-id: trunk@63380 -
2020-06-17 16:52:12 +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
joost
c326b7a628 fpDebug: Fixed endless loop when the debuggee receives an exception-signal. (Calling wstopsig on the signal twice is not the way to go)
git-svn-id: trunk@63282 -
2020-06-03 22:08:16 +00:00
martin
c9dea89ec8 FpDebug: Linux, Fix accessing dangling pointer while pausing all threads. (thread removed, after exit-signal)
git-svn-id: trunk@63156 -
2020-05-14 15:55:07 +00:00
martin
ee2ae9567c FpDebug: Do not ignore SigTrap
git-svn-id: trunk@63065 -
2020-04-24 20:08:17 +00:00
martin
fb73a010b2 FpDebug: Remember single-step if other threads cause events / deferred events
git-svn-id: trunk@63063 -
2020-04-24 20:08:14 +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
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
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
439be6f619 FpDebug: Linux, removed assert. Condition can occur when process terminates, as threads have not been restarted
git-svn-id: trunk@62496 -
2020-01-04 19:44:02 +00:00
martin
764dae935a FpDebug: Fix leak on Linux / Thread objects were not always released
git-svn-id: trunk@62176 -
2019-11-03 17:05:42 +00:00
martin
17dda63638 FpDebug: Refactor freeing thread objects for exited threads
git-svn-id: trunk@62175 -
2019-11-03 17:05:40 +00:00
mattias
d0e20a7e06 fpdebug: clean up
git-svn-id: trunk@62108 -
2019-10-22 15:10:12 +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
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
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
fc1a436bed FpDebug: Linux, do not add any SigStop to deferred event list. (It going to be ignored as deInternalContinue anyway)
git-svn-id: trunk@61876 -
2019-09-14 14:27:45 +00:00
martin
4be5e94e3e FpDebug: Linux, do not modify running processes (in case of deInternalContinue, some processes may not be paused)
git-svn-id: trunk@61875 -
2019-09-14 14:27:44 +00:00
martin
63087a3084 FpDebug: Linux, ensure a breakpoint is reported once for each thread, if hit at the same time
git-svn-id: trunk@61853 -
2019-09-10 18:52:46 +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
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
e6e7bf4355 FpDebug: Linux, improve "Stop all" loop
git-svn-id: trunk@61833 -
2019-09-08 18:52:41 +00:00
martin
595f8b9f3e FpDebug: Linux, refactor signal handling for signals that need to be postponed. Need to collect signals with no existing thread yet, as they will create that thread.
git-svn-id: trunk@61832 -
2019-09-08 18:52:39 +00:00
martin
aa85ec85ed FpDebug: Linux, removed unused code
git-svn-id: trunk@61831 -
2019-09-08 18:52:38 +00:00
martin
1ab353e555 FpDebug: Linux, reduce the amount of calls to temp-remove/restore breakpoints
git-svn-id: trunk@61830 -
2019-09-08 18:52:36 +00:00
martin
85a8100c39 FpDebug: Linux, fix for temp-removed breakpoints were not always restored (if another thread had pending events, writing the breakpoint in WaitForEvent would fail, due to thread running / signal not yet collected)
git-svn-id: trunk@61829 -
2019-09-08 18:52:35 +00:00
martin
999d567e45 FpDebug: debugln for Linux
git-svn-id: trunk@61828 -
2019-09-08 18:52:33 +00:00
martin
9defda8b5c FpDebug: Linux, prevent crash on nil deref
git-svn-id: trunk@61819 -
2019-09-05 20:05:58 +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
cfed0db10f FpDebug: More refactor internal breakpoints. Improve stopping other threads on Linux
git-svn-id: trunk@60214 -
2019-01-25 00:44:38 +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
861615d32d FpDebug: Linux, remove threads when they exit
git-svn-id: trunk@60153 -
2019-01-23 01:17:38 +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
mattias
ace1df908b fpdebug: clean up
git-svn-id: trunk@60111 -
2019-01-19 17:37:30 +00:00
martin
d00b7d06af FpDebug: fix compile on linux. Issue #0034894
git-svn-id: trunk@60103 -
2019-01-18 11:26:00 +00:00
martin
cd32b50fa8 FpDebug: Linux, pause all threads if any is paused
git-svn-id: trunk@60096 -
2019-01-16 22:34:33 +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
a80f8c659c FpDebug: refactor for loading MacOs sym in mixed lldb/gdb debug
git-svn-id: trunk@58395 -
2018-06-24 19:31:39 +00:00
joost
cf440de910 fpdebug: Do not suspend on the start of a child-process
git-svn-id: trunk@58160 -
2018-06-06 20:51:41 +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
joost
50cce1a623 fpdebug: Handling of multiple threads (Linux)
git-svn-id: trunk@58095 -
2018-06-03 13:00:00 +00:00
mattias
0924792e5f fpdebug: using TProcessUTF8
git-svn-id: trunk@50596 -
2015-12-04 16:03:20 +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
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
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
joost
daaa427f54 FpDebugger (pure): Re-direct console output to the terminal-output debug window on Linux
git-svn-id: trunk@46058 -
2014-08-22 15:47:46 +00:00
joost
8fd0269bae FpDebug (pure): Detect if a HW breakpoint has been triggered on Linux
git-svn-id: trunk@46045 -
2014-08-16 21:40:08 +00:00
joost
22ff8ae3ff FpDebugger (pure): Ignore SIGCHLD signal and let the debuggee handle it (Linux)
git-svn-id: trunk@45884 -
2014-07-15 20:35:21 +00:00
joost
636ffbe4da FpDebugger (pure): Fixed compilation with fpc 2.6.4 on OS/X and Linux
git-svn-id: trunk@45874 -
2014-07-15 06:35:46 +00:00
joost
93618ffad0 FpDebugger (pure): Implemented pause (Linux)
git-svn-id: trunk@45867 -
2014-07-14 20:32:01 +00:00
joost
89f94d01be FpDebugger (pure): Watchpoints on 32-bit linux
Removed some old debug-code

git-svn-id: trunk@45854 -
2014-07-13 11:23:07 +00:00
joost
eb735a3db1 FpDebugger (pure): Fix for getting the frame-pointer
git-svn-id: trunk@45850 -
2014-07-13 10:05:14 +00:00
joost
8397b21039 FpDebugger (pure): Show error-message on failure to start debuggee
git-svn-id: trunk@45848 -
2014-07-12 21:05:22 +00:00
joost
c670807110 FpDebugger (pure): Use GETREGSET instead of GETREGS, cross-arch-debugging on Linux
git-svn-id: trunk@45842 -
2014-07-12 15:30:46 +00:00
joost
42ba440a7d FpDebugger (pure): i386-linux support
git-svn-id: trunk@45834 -
2014-07-11 21:29:07 +00:00
joost
600fc1036c FpDebugger (pure): Let the memory-manager read memory from within the debugging-thread on Linux.
More fixes for getting the instruction-register on x86_64
Fixxed setting the line-info on Darwin and Linux

git-svn-id: trunk@45817 -
2014-07-08 21:15:04 +00:00
joost
bcb2f4643e FpDebugger (pure): Hardware-breakpoints on Linux/x86_64
git-svn-id: trunk@45794 -
2014-07-06 16:26:16 +00:00
joost
e48fb34a9a FpDebug (pure): Do not try to set register-values twice
git-svn-id: trunk@45765 -
2014-07-03 19:37:41 +00:00
joost
5f0402b4c2 FpDebug (pure): Added Linux-support
git-svn-id: trunk@45732 -
2014-06-29 20:55:54 +00:00