Martin
9877946d86
FpDebug: reduced debugln
2021-12-07 23:21:42 +01:00
Martin
07e3817870
FpDebug: fix mem leak. Libraries were not freed on Unload.
2021-12-06 00:40:25 +01:00
Joost van der Sluis
bc4718efae
FpDebug: Ability to pass multiple libraries to OnLibrary(Un)LoadedEvent and detection of loading of libraries on Linux
2021-12-05 01:46:45 +01:00
Martin
9213ca32e8
FpDebug: Fixed MemLeak on Windows: TProcessUtf8 was not freed / introduced in e104c4c418
- merge-request !41
2021-11-20 13:02:22 +01:00
Martin
32aaa9b127
FpDebug: Fix default value / fix test
2021-11-07 15:32:43 +01:00
ccrause
7e5b510a4e
Update StartInstance and AttachInstance method signatures of TDbgWinProcess.
2021-11-06 16:17:58 +02:00
ccrause
4055d9420b
Consolidated parameters for TDbgProcess.Create, StartInstance and AttachToInstance.
2021-11-06 14:23:31 +01:00
ccrause
923fce0cb0
Change StartInstance and AttachInstance to normal methods. TDbgController now calls OSDbgClasses.DbgProcessClass to create a process class instance with a TDbgProcessConfig parameter which can be subclassed and passed around for configuration. The remote configuration is now passed via this parameter as a subclass.
2021-11-06 14:23:28 +01:00
Sergey Larin
5d7d828c63
FpDebug: Support for the 4th argument when calling the function (Win64)
...
Related to a32ac8e665
2021-01-07 12:09:04 +03:00
Martin
6fc5c2fcdd
FpDebug: more asserts for correct thread usage
2021-10-13 21:48:32 +02:00
Martin
f47220cc47
FpDebug: Add asserts
2021-09-26 02:09:18 +02:00
martin
b5bf7de6f9
FpDebug, Windows: Forward OutputDebugString to IDE.
...
git-svn-id: trunk@65475 -
2021-07-19 18:17:06 +00:00
martin
0244c95a33
FpDebug: Dynamically load DebugBreakProcess
...
git-svn-id: trunk@65291 -
2021-06-22 15:14:38 +00:00
martin
6661f86edd
Debugger: allow to force lazloggerbase via define
...
git-svn-id: trunk@65227 -
2021-06-14 07:30:45 +00:00
martin
ce0d1a0bc8
LazDebuggerFp, FpDebug: Beta, Allow function calls in watches
...
git-svn-id: trunk@65151 -
2021-05-29 22:51:09 +00:00
martin
82c6e8b284
FpDebug: Change debugging flags on process creation. Allow debugged 32bit processes to launch 64bit sub-processes without the debugger interfering. Sub-processes are anyway currently not debugged. Issue #0038546
...
git-svn-id: trunk@64779 -
2021-03-10 18:38:39 +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
martin
9ff4b0dc00
FpDebug: Win, add debugln for ContinueDbgEvent / WaitForDebugEvent
...
git-svn-id: trunk@63777 -
2020-08-18 11:37:54 +00:00
martin
f2959d4c98
FpDebug: Win, Only read ThreadState once per thread.
...
git-svn-id: trunk@63775 -
2020-08-18 00:04:04 +00:00
martin
2bba45a96c
FpDebug: SetRegisterValue for Windows
...
git-svn-id: trunk@63764 -
2020-08-16 20:23:35 +00:00
martin
1f229f6246
FpDebug: Fix compile on Windows
...
git-svn-id: trunk@63753 -
2020-08-16 12:40:36 +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
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
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
6739277749
Revert "FpDebug: Windows, remove unused code" / WinProcess.Interrupt is used by app/fpd
...
git-svn-id: trunk@62489 -
2020-01-04 15:00:40 +00:00
martin
98aa637a42
FpDebug: debugln
...
git-svn-id: trunk@62406 -
2019-12-16 23:22:53 +00:00
martin
42eb28852f
FpDebug: Win, Fix dropping last char of dll names.
...
git-svn-id: trunk@62341 -
2019-12-08 00:18:12 +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
cc3e23afb0
FpDebug: Win, Parse DLL-Entry points
...
git-svn-id: trunk@62338 -
2019-12-08 00:18:07 +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
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
ec207608a5
FpDebug: Windows, when terminating the process (stop debugger) collect all pending events.
...
git-svn-id: trunk@62033 -
2019-10-11 12:07:17 +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
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
joost
24a6aab526
FpDebugger (pure): Retrieve the file-names of loaded processes and modules.
...
git-svn-id: trunk@45400 -
2014-06-08 13:18:23 +00:00
joost
d3edca108f
FpDebugger (pure): Fixed the handling of a debuggee that starts child-processes
...
git-svn-id: trunk@45391 -
2014-06-08 00:13:50 +00:00
joost
3fb55d6ed6
FpDebug (pure): Added thread-safe loggingsystem with three log-levels. The log-levels dllInfo and dllError are used to show messages/errors in the ide.
...
The new log-system is used to show a message when there is no dSym-bundle with Dwarf-debug info or if the ide has not enough rights to debug applications. (OS/X)
git-svn-id: trunk@45382 -
2014-06-07 14:27:48 +00:00
joost
b526979d64
FpDebugger (pure): Removed excessive debug-output.
...
git-svn-id: trunk@45292 -
2014-06-01 19:46:06 +00:00
joost
62bcb922cd
FpDebugger (pure): x86_64-debugging on Win64. (Win32-win64 cross-debugging not possible on Windows. Win64-win32 is still not implemented)
...
git-svn-id: trunk@45284 -
2014-06-01 16:27:35 +00:00
joost
f25dee1d51
LazDebuggerFp (pure): Exception handling. (no software exceptions)
...
git-svn-id: trunk@44970 -
2014-05-07 18:32:50 +00:00
joost
31762452ae
LazDebuggerFp (pure): Handle working-directory and environment of debuggee
...
git-svn-id: trunk@44936 -
2014-05-06 19:25:38 +00:00
joost
04283997b4
LazDebuggerFp (pure): Pass arguments to debuggee
...
git-svn-id: trunk@44928 -
2014-05-05 20:15:42 +00:00
joost
79f817ca53
LazDebuggerFp (pure): Use TProcess to start debuggee
...
git-svn-id: trunk@44922 -
2014-05-05 10:21:16 +00:00
martin
e53e32b3c8
FpDebug: compile on win64
...
git-svn-id: trunk@44902 -
2014-05-03 15:00:16 +00:00
joost
e7779bd476
LazDebuggerFp (pure): Implemented step-into
...
git-svn-id: trunk@44862 -
2014-04-30 20:44:22 +00:00
joost
fc35f675bc
LazDebuggerFp (pure): Resolved problems with freeing breakpoints after the debuggee has ended.
...
git-svn-id: trunk@44771 -
2014-04-20 19:39:35 +00:00
joost
a69e382e98
LazDebuggerFp (pure): Ability to pause debuggee (Windows)
...
git-svn-id: trunk@44749 -
2014-04-16 20:19:13 +00:00