Commit Graph

91 Commits

Author SHA1 Message Date
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
804b5a7be4 FpDebug: Windows, fix closing handles for sub-processes (not currently debugged). Also correctly detach.
git-svn-id: trunk@61892 -
2019-09-16 21:49:27 +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
cc1055fbed FpDebug: Windows, fix stepping over (temp-removed) breakpoint.
- If another thread received a signal before the "step-finished signal" (e.g. thread created / pending sigs) then the temp-break was back in place and kept in place -> the break was hit again instead of stepping over it.
- If another thread exited (and the exit signal was received before the "step-finished signal" then no handling was done at all (no threads suspended / no temp remove breaks)

git-svn-id: trunk@61877 -
2019-09-14 14:27:47 +00:00
martin
3fce95a1c2 FpDebug: Windows, debugln/dbgs include WOW64 names
git-svn-id: trunk@61867 -
2019-09-12 15:33:14 +00:00
martin
c9beb9dffe FpDebug: Windows, fixed Process.Continue with single step request
git-svn-id: trunk@61866 -
2019-09-12 15:33:12 +00:00
martin
1958b8edea FpDebug: Windows, Added WoW64
git-svn-id: trunk@61848 -
2019-09-10 01:40:49 +00:00
martin
a2978c370e FpDebug: Windows, remove unused code
git-svn-id: trunk@61847 -
2019-09-10 01:40:48 +00:00
martin
a3fb24b828 FpDebug: load some kernel functions dynamically, to avoid stopping the IDE from starting on pre-vista systems.
git-svn-id: trunk@61846 -
2019-09-09 21:13:57 +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
2f812db331 FpDebug: Windows, suspend other threads while single stepping over a (temp-removed) breakpoints.
- Other threads could cause an event, before the thread does single-step. Then the breakpoint gets restored to early
- Other threads could run through the code, while the breakpoint is removed. They would not stop as they should.

git-svn-id: trunk@61838 -
2019-09-08 19:03:08 +00:00
martin
966ecb9382 FpDebug: debugln for windows API events
git-svn-id: trunk@61834 -
2019-09-08 18:52:42 +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
8874afbe6a FpDebug/LazDebuggerFp: Refactor logging, use LazLogger for all logging.
git-svn-id: trunk@61427 -
2019-06-19 15:26:22 +00:00
martin
f534ee214b FpDebug: Fix crash on Win, in case of multiple processes (e.g. console process for win gui app). Accessing wrong threads (thread-state) during events would crash the target
git-svn-id: trunk@60345 -
2019-02-06 00:47:08 +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
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
8175bdfee6 FpDebug: Windows, fixed intercepting system exceptions (access violations, stack overflow, div zero,...)
git-svn-id: trunk@60044 -
2019-01-09 14:29:56 +00:00
martin
a33608de2e FpDebug: Windows, fix leaking filehandles (again), see r59552 #122dfbd2ce / needed until forked processes are handled.
git-svn-id: trunk@59741 -
2018-12-06 18:03:18 +00:00
martin
0506cd7fb5 FpDebug: Windows, Check dwDebugEventCode before accessing case dependent data
git-svn-id: trunk@59740 -
2018-12-06 18:01:02 +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
3f70eb5a9d FpDebug: Windows, replace global context (thread context/registers) with context per thread
git-svn-id: trunk@59569 -
2018-11-17 13:55:54 +00:00
martin
122dfbd2ce FpDebug: Windows, fix leaking filehandles / more (temp) fixes for not processing forked children
git-svn-id: trunk@59552 -
2018-11-15 22:42:41 +00:00
martin
84e5ae329a FpDebug: Workaround for dangling thread object
git-svn-id: trunk@59551 -
2018-11-15 22:41:07 +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
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
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
bf3d90af8b fpdebug: fixed TDbgWinProcess.Continue to call Windows.ContinueDebugEvent even though aThread invalid
git-svn-id: trunk@50930 -
2015-12-19 11:06:19 +00:00
mattias
8fd1210a8b fpdebug: fixed TDbgWinProcess.RemoveLib free lib, bug #29206, patch from Anton
git-svn-id: trunk@50887 -
2015-12-17 22:10:23 +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
269420bf8c fpdebug: fixed TDbgWinProcess.Continue checking if aThread valid, bug #29206, patch from Anton
git-svn-id: trunk@50883 -
2015-12-17 22:04:50 +00:00
mattias
e7ce75b682 fpdebug: using Windows W functions
git-svn-id: trunk@50617 -
2015-12-04 19:02:39 +00:00
mattias
0924792e5f fpdebug: using TProcessUTF8
git-svn-id: trunk@50596 -
2015-12-04 16:03:20 +00:00
martin
24d973001c fpdebug: fix pause on win32
git-svn-id: trunk@49029 -
2015-05-15 15:04:11 +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
martin
56a4a31450 fix some warnings
git-svn-id: trunk@46906 -
2014-11-20 16:27:55 +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
843f23eafd LazDebuggerFp (pure): Rewrote/refactored ResolveDebugEvent. As much as possible code moved from the os-specific classes to the general classes. Now TDbgProcess and TDbgThread only handle single-stepping and the handling of breakpoints and exceptions. Other commands (like step-line, step-into-line etc) are implemented as childs of TDbgControllerCmd. All specific handling is done in those classes.
git-svn-id: trunk@45590 -
2014-06-20 15:22:45 +00:00
joost
0016101b7f FpDebugger (pure): Show a message when starting the debuggee has failed. With some special attention to the case that someone tries to debug a 64 bit application with a 32 bit debugger.
git-svn-id: trunk@45432 -
2014-06-09 16:29:25 +00:00
joost
1b1997f370 FpDebugger (pure): Changed notification-level for errors during reading memory from dllInfo to dllDebug. It is quite normal that a debugger tries to read memory from invalid addresses.
git-svn-id: trunk@45428 -
2014-06-09 12:36:51 +00:00
joost
56442faf8e FpDebugger (pure): Set the correct register-sizes for x86_64-win64.
git-svn-id: trunk@45427 -
2014-06-09 12:16:38 +00:00
joost
a3149e411e FpDebugger (pure): Updated the Dwarf-register number information on Windows, see x86reg.dat/amd64-tdep.c.
git-svn-id: trunk@45425 -
2014-06-09 10:34:49 +00:00
joost
5c3fd8af1d FpDebugger (pure): Let the kernel close the debug-handle after an application has quit. (bug #25986)
git-svn-id: trunk@45423 -
2014-06-09 09:33:32 +00:00
joost
9052ce0136 FpDebugger (pure): Use the (thread-safe) log system instead of DebugLn
git-svn-id: trunk@45409 -
2014-06-08 22:22:50 +00:00
joost
22e7389619 FpDebugger (pure): Refactored creation of new TDbgThreads
git-svn-id: trunk@45407 -
2014-06-08 18:59:06 +00:00