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