Commit Graph

260 Commits

Author SHA1 Message Date
Martin
044ee4f0bc LazDebuggerFp: load line info (blue dots) for libraries 2023-05-27 13:19:33 +02:00
Martin
0b441dd73b FpDebug: disable peephole opt when using fpc 3.2.2 => otherwise fpc generates wrong code 2023-05-01 17:43:22 +02:00
Martin
0c94422e48 FpDebug: fix unrolling stack / complete fix for 33556f939f
- TDbgCallstackEntry handles the "addr - 1" by itself.
- But FindCallFrameInfo also needs it. It must search for the address of (or inside of) the asm "call ..." statement.
2023-04-27 16:44:43 +02:00
Martin
ee4e48864e LazDebuggerFp, FpDebug: Disassembler now annotates lines with call,jmp,je,... with info on the target address. 2023-03-15 00:19:40 +01:00
Martin
cac376d0f9 LazDebuggerFp, FpDebug: Fix watch-function-call when debuggee has crashed. Prevent the function call 2023-03-13 12:32:30 +01:00
Martin
db27ef882d FpDebug: clean up compile hints 2023-03-12 22:34:28 +01:00
Martin
8970a4768b FpDebug: Improve partial mem-read. Check early if the address is readable at all. 2023-03-02 20:11:47 +01:00
Martin
04b384b34d FpDebug: Set breakpoints in libraries (dll/so). Update existing breakpoints when library is loaded. Add state (ok, fail, pending) to breakpoints. 2023-02-16 16:39:03 +01:00
Martin
5d091f5d5b FpDebug: Refactor breakpoints, move unit+line (or proc-name) to DpDebug. Change default scope to search all already loaded libraries. 2023-02-16 16:39:02 +01:00
Martin
b752e5b684 FpDebug: refactor GetLineAddresses and FindProcSymbol - Always go through TDbgProcess 2023-02-16 14:49:29 +01:00
Martin
448bb20ba6 FpDebug: Refactor TBreakLocationMap, so that "OrigValue" is no longer exposed. Move some functionality from TProcess to TBreakLocationMap. 2023-01-25 20:54:59 +01:00
Martin
c59f34e9ba FpDebug: fixed spelling / thanks to ccrause 2023-01-08 19:33:20 +01:00
Martin
8ef10902f3 FpDebug: Stack, CFI - For older FPC (broken CFI) always continue non-CFI eval. 2022-10-27 15:42:59 +02:00
Martin
ffaa538517 Debugger: increase safety net for max stack frames 2022-09-14 16:38:04 +02:00
Martin
45b69e8d9d Debugger: Allow to suspend/resume individual threads / only with FpDebug, only while paused - for the next run/step. 2022-09-11 03:28:53 +02:00
Martin
db69b34e2a FpDebug: Fixes for watch-function-eval: allow function to recursively enter itself. 2022-09-10 18:01:36 +02:00
Martin
126dd815cd FpDebug: fix range check error in stack 2022-09-09 22:54:06 +02:00
Martin
f58a7bde79 LazDebuggerFp: add %register syntax for watches 2022-09-07 04:36:34 +02:00
Martin
ae209a52a4 FpDebug: fix callstack eval, after CFI ended. 2022-09-06 13:59:01 +02:00
Martin
f3bf79fa35 Debugger: fix calling abstract method "BelongsToInstance" on watchpoint. Introduced 4e4c402b62 2022-08-05 17:33:28 +02:00
Martin
2f4e270270 FpDebug: Windows, rewrite of "step after hitting breakpoint". Fix issues with incorrect steps (Instr-Ptr not reset) in multi thread scenario, when the int3 had been remove in the meantime. 2022-08-02 15:20:50 +02:00
Martin
9e67808d84 LazDebuggerFp: improve errors for function calling 2022-07-01 01:06:08 +02:00
Joost van der Sluis
62145cd833 FpDebug: Use Dwarf Call Frame Information (CFI) for stack-tracing when available. Refactored some stuff to be able to place it in a separate unit. 2022-06-28 23:09:34 +02:00
Pascal Riekenberg
2bc0a9b371 Debugger: added support for TThread.NameThreadForDebugging 2022-06-28 07:35:40 +02:00
Martin
b014798858 LazDebuggerFp, FpDebug: Enable watch-eval calling function with strings as param/result (only DWARF 3 / up) 2022-06-21 00:29:07 +02:00
Martin
63a6ce4f32 FpDebug: added IFDEF $INLINE OFF 2022-06-21 00:06:04 +02:00
Martin
315bb059d8 FpDebug: fix overflow in stack eval 2022-05-09 23:48:30 +02:00
martin
5a01f79d1c FpDebug: Find line info when dwarf subprogram-tag is missing. Use line info with linker info. This fixes stepping into old-style "TFoo = object ... end" 2022-05-05 02:46:33 +02:00
Martin
27f4c50dbd FpDebug: Fix RangeCheck, TByteArray has an upper limit of 32k. 2022-03-03 00:46:11 +01:00
Martin
0e6769ac99 FpDebug, LazDebuggerFp: Implement tracking modified CPU registers (top stack-frame only) 2022-02-25 20:25:01 +01:00
Martin
8335731953 FpDebug: Fixed uninitialized variables. 2022-02-22 01:01:40 +01:00
Martin
6993390bab FpDebug: Improve Stack after calling TProc(nil) / Call to code not in apps memory 2022-02-09 19:30:40 +01:00
Martin
b6be0ae622 FpDebug: Improve Stack after calling TProc(nil) / Call to code not in apps memory 2022-02-09 15:39:26 +01:00
Martin
d1ac568e96 Debugger: New package LazDebuggerIntf / Replace TWatchValue with TWatchValueIntf 2022-01-10 14:08:37 +01:00
Joost van der Sluis
4e4c402b62 FpDebug: Remove breakpoints bound to a specific library when this library gets unloaded 2021-12-23 00:32:41 +01:00
Joost van der Sluis
8205a04199 FpDebug: On Windows the RelocationOffset can only be calculated after the file-header has been read. So the whole logic to obtain the RelocationOffset out of the LoadedTargetImageAddr and ImageBase is refactored 2021-12-15 01:21:10 +01:00
Joost van der Sluis
70d007f0de FpDebug: Differentiate between the BaseAddr and the RelocationOffset 2021-12-13 23:18:10 +01:00
Joost van der Sluis
de0974f29e FpDebug: Removed TDbgInstance.AddrOffset and other old attempts to relocate libraries properly 2021-12-08 00:43:17 +01:00
Joost van der Sluis
f073c52428 FpDebug: Search for line-information not only within the executable, but also in the loaded libraries 2021-12-07 23:31:41 +01:00
Martin
499026c519 FpDebug: Win64 SEH finally sub-routines, find the symbol for the procedure actually owning the finally block 2021-12-07 22:56:11 +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
89cc21355f FpDebug: fixed visibility warning for InitLoaders 2021-11-08 14:59:14 +01: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
ccrause
9f02cfbf72 Remove write access to LoaderList property. 2021-11-05 21:43:44 +02:00
ccrause
052a1245a7 Fix AVR watchpoint issue when watchpoint is already declared when program starts, which leads to an invalid watchpoint. AVR usually starts from address 0, so not calling FindSymbolScope when address is 0 causes this problem. 2021-11-01 12:15:06 +02:00
ccrause
23065e004c Add functionality to get proc start/end addresses from debug info. Used to scan prologue and epilogue for frame information on AVR target. 2021-11-01 12:13:28 +02:00
ccrause
165c4dae9a Start with AVR call stack analysis 2021-11-01 12:13:17 +02:00
ccrause
00d5dd4589 Remove duplicate LoaderList property. 2021-11-01 12:12:21 +02:00