Commit Graph

1281 Commits

Author SHA1 Message Date
Martin
ad9a460928 FpDebug, Linux: Improve stepping over breakpoint.
When the signal for a newly launched thread was received while the single-step was still in progress, then "RestoreTempBreakInstructionCodes" failed (as the thread was still running), and the breakpoint (int3) ended up missing (no longer stopping at the breakpoint).
2023-01-24 18:03:16 +01:00
Martin
d99e76636d FpDebug: fix storing "step info" (symbol/line at PC) 2023-01-09 16:46:53 +01:00
Martin
c59f34e9ba FpDebug: fixed spelling / thanks to ccrause 2023-01-08 19:33:20 +01:00
ccrause
171be791ea [RSP] Do not acknowledge an OK response, since qemu complains about receiving an acknowledge after an OK response. It is not clear whether this is in accordance with the RSP protocol specification. 2023-01-08 17:05:04 +01:00
ccrause
1bad121570 [RSP] Removed unused variables. 2023-01-08 17:05:03 +01:00
ccrause
411eebba23 [RSP] Add HWBreak parameter to Add/DeleteBreakWatchPoint method so that TProcess can decide whether a HW or SW break should be inserted on the target. 2023-01-08 17:05:02 +01:00
ccrause
06c4f184d7 [RSP] Bug fix: add the register value to the command to be sent over RSP. Rename ConvertHexWithLittleEndianSwap to HexToIntLittleEndian as this is closer to the regular HexToInt function. Add IntToHexLittleEndian function. 2023-01-08 17:05:01 +01:00
ccrause
b58c6a5dcb Add call saved registers for AVR to InitializeABIRules. 2023-01-08 17:04:59 +01:00
ccrause
b787b45f59 Specify CIE address size for AVR8 architecture. 2023-01-08 17:04:58 +01:00
Martin
cc31d7752a FpDebug: fix watching fields in "old style" objects 2022-12-07 01:44:51 +01:00
Martin
d8f2ce5a1f FpDebug: fix mem leak 2022-12-06 00:15:35 +01:00
Martin
cdafe7d9a3 FpDebug: make "^char" display string-like, like PChar. 2022-12-06 00:15:35 +01:00
Martin
55f314c9ac FpDebug: Fix subtraction for some pointers / Fix type-info for @char, so minus considers them compatible. 2022-12-06 00:15:34 +01:00
Martin
4c879cc73c FpDebug: Fix disassembler operand size for $a3 "move [...], reg" 2022-12-02 03:19:38 +01:00
Martin
143aaab00f FpDebug: WatchResultData, more error checks 2022-12-02 01:01:33 +01:00
Martin
bcb511f8c1 FpDebug: fix parsing linemap, after commit 5e1326dab3 2022-11-22 16:29:09 +01:00
mattias
5e1326dab3 fpdebug: fixed crash 2022-11-22 02:36:49 +01:00
mattias
6671244b72 updated makefiles, fixed compile fpdebug with fpc 3.2.2 2022-11-13 13:23:46 +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
9e813a6a78 FpDebug: Watch-Function-Eval, support QWord parameters on 32 bit targets 2022-09-25 19:49:42 +02:00
Martin
78caaf4fc2 FpDebug: Dwarfviewer, do not parse after unknown OP. 2022-09-23 20:29:17 +02:00
Martin
3ebada48d3 FpDebug: Allow more params passed to function in watch-function-eval 2022-09-23 20:28:20 +02:00
Martin
753799d887 FpDebug: add intrinsics "Pos(SubStr, SearchStr)" and "SubStr(Str, Start, Len, DoPtr) 2022-09-18 23:48:59 +02:00
Martin
4bdc8f2702 FpDebug: add intrinsic "RefCnt()" => RefCount for AnsiString/LongString (Dwarf-3) and dyn array. 2022-09-18 23:48:59 +02:00
Martin
4910e764bb FpDebug: Improve PChar handling in pointer math. 2022-09-18 23:48:59 +02:00
Martin
41c9abc8a5 FpDebug: fix typo 2022-09-16 19:55:14 +02:00
zeljan1
78b42debff Revert "Merge branch 'main' of https://gitlab.com/freepascal.org/lazarus/lazarus into main"
This reverts commit 9c4ae10819, reversing
changes made to 0e040a0d77.
2022-09-16 18:00:17 +02:00
Martin
8e038f924e FpDebug: fix typo 2022-09-14 18:40:17 +02:00
Martin
313a112a65 FpDebug: fix type 2022-09-14 16:38:04 +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
712b3e161d FpDebug: Fixes for watch-function-eval: allow function to ignore breakpoints set by the user. 2022-09-10 21:36:09 +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
0bdae9fa28 FpDebug: fix crash in stack after "watch eval" call. Don't clear stack data. 2022-09-09 22:56:08 +02:00
Martin
126dd815cd FpDebug: fix range check error in stack 2022-09-09 22:54:06 +02:00
Martin
099f690aea FpDebug: Fix parsing &Identifer in watches 2022-09-09 13:04:36 +02:00
Martin
659d6aec30 Debugger: changed default intrinsic prefic to ":" / require bracket if no prefix 2022-09-09 12:24:47 +02:00
Martin
6126d94aaf FpDebug: add intrinsic "CC()" => ChildClass for dynamic casting to instance class 2022-09-08 22:53:52 +02:00
Martin
7e6a705caf FpDebug: Fix array (element len), issue introduced in 116b22ed72 "Introduce "Intrinsics functions" for watches." 2022-09-07 20:08:42 +02:00
Martin
116b22ed72 FpDebug: Introduce "Intrinsics functions" for watches. Add "length()" for string (dwarf-3) and array 2022-09-07 04:36:34 +02:00
Martin
f58a7bde79 LazDebuggerFp: add %register syntax for watches 2022-09-07 04:36:34 +02:00
Martin
b3cae05fee FpDebug: fix restoring registers (e.g. after function eval) 2022-09-07 04:36:33 +02:00
Martin
ae209a52a4 FpDebug: fix callstack eval, after CFI ended. 2022-09-06 13:59:01 +02:00
Martin
528dc04f52 FpDebug: Fix compilation of dwarfviewer. 2022-09-04 10:52:57 +02:00
Martin
a0b19ffcf9 FpDebug: Fix Mac-ImageReader. Deal with Symbols of type N_PEXT. And fix, for entries where N_SECT is encountered before N_GSYM. Issue #39696 2022-09-04 10:52:57 +02:00
Martin
1c5a6ca5d7 FpDebugger: fix value-converters crash in array. Arrays elements must have a static type, and must not depend on the instance. 2022-08-23 16:08:21 +02:00
ccrause
4c3d53137f Only break out of search loop if current Result contains the sfHasLine flag. 2022-08-08 09:25:20 +02:00
Martin
795b94703f FpDebug: missing result initialization 2022-08-07 23:19:17 +02:00
Martin
f3bf79fa35 Debugger: fix calling abstract method "BelongsToInstance" on watchpoint. Introduced 4e4c402b62 2022-08-05 17:33:28 +02:00
Martin
dd22337fc3 FpDebug: fix accessing nil pointer 2022-08-05 17:33:28 +02:00
Martin
1c87d53199 Debugger: implement reading class.unitname from RTTI 2022-08-05 02:45:01 +02:00
Martin
8749ca4f20 FpDebug: fix address for interfaces 2022-08-05 02:44:29 +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
48043da966 Debugger: Converter, match "*" and inheritance via "is:" 2022-08-01 18:41:17 +02:00
Martin
de03939782 LazDebuggerFp: Converter JsonForDebug 2022-07-27 01:17:36 +02:00
Martin
099c102565 FpDebug, LazDebuggerFp: more string support for function-eval / support string literals as param 2022-07-27 01:17:36 +02:00
Martin
f3476e5274 FpDebug: Callcontext, rename TFpValueCallParamStringByRef to TFpSymbolCallParamOrdinalOrPointer 2022-07-27 01:17:36 +02:00
Martin
8a0a21a7bc LazDebuggFp,FpDebug: fix racing conditions
- while TDbgController.SendEvents runs in the main thread, the work-thread may run TDbgControllerCallRoutineCmd
 - TDbgControllerCallRoutineCmd may run, while the main thread attempts to set the next command
 - CallStack code was from before the WorkQueue was introduced. It needs a different approach. (without attempting to start a new worker)
2022-07-27 01:17:35 +02:00
martin
2fce58a3de FpDebug: support DW_TAG_variant_part 2022-07-13 21:19:35 +02:00
Martin
d0d616e131 FpDebug: keep CurrentContext during function-eval calls. (access by other threads) 2022-07-13 10:27:47 +02:00
Martin
77857b84ce FpDebug: improve dyn array detection 2022-07-13 10:27:47 +02:00
Joost van der Sluis
a680001c2e FpDebug: Workaround in fpmake.pp for usage with fpc 3.2.2 2022-07-10 12:54:03 +02:00
Joost van der Sluis
7e67d9b871 FpDebug: fpmake.pp updated 2022-07-10 12:46:13 +02:00
Joost van der Sluis
a7d0a6e0b2 FpDebug: Keep register-names in stacktrace 2022-07-03 18:44:12 +02:00
Martin
6243770298 LazDebuggerFp: reduced default limit for max array members returned. Arrays can now be paged. (and RecurseCnt can override it) / removed hardcode 1000 limit. 2022-07-03 01:54:28 +02:00
Martin
248732defe debugln 2022-07-02 01:57:49 +02:00
Joost van der Sluis
dee6e4a482 FpDebug: Duplicate code removed 2022-07-02 00:48:42 +02:00
Joost van der Sluis
4ed7f56bb4 FpDebug: Handle CIEs and FDEs without instructions properly 2022-07-02 00:31:15 +02:00
Martin
3c322a009f FpDebug: Win, improved logging for errors 2022-07-01 01:06:08 +02:00
Martin
9e67808d84 LazDebuggerFp: improve errors for function calling 2022-07-01 01:06:08 +02:00
Martin
dcf2a00767 FpDebug: use Wow64SuspendThread for cross debugging. 2022-06-30 13:00:45 +02:00
Martin
4c6633754c FpDebug: fix empty array (nil) access from changes in 62145cd833, "Use Dwarf Call Frame Information (CFI) for stack-tracing when available. 2022-06-30 12:05:22 +02:00
Martin
ae2ca525ca FpDebug: Win, Clear Exception after function-eval-call failed (with SigSegV) 2022-06-30 02:46:01 +02:00
Martin
0429c822c1 LazDebuggerFp: debugln for function calling (watch-eval) 2022-06-30 02:30:15 +02:00
Martin
9fb4edfbe5 FpDebug: PascalParser, fixed unary minus after comma. 2022-06-30 02:30:14 +02:00
Martin
1d0daee376 FpDebug: fix setting negative value to Register for 32bit target. 2022-06-30 02:20:53 +02:00
Martin
f4f7cca11d FpDebug: fix reading range checks on Linux 2022-06-29 19:42:18 +02:00
Martin
bdb719b82a FpDebug: fix reading large dwarf info on 32bit Linux 2022-06-29 18:52:32 +02:00
Martin
2d7b1138f4 FpDebug: allow function calls on Linux-32bit 2022-06-29 17:42:08 +02:00
Martin
649e4600ef FpDebug: fix range check error from changes in 62145cd833, "Use Dwarf Call Frame Information (CFI) for stack-tracing when available. 2022-06-29 16:26:22 +02:00
Joost van der Sluis
07cba653fa FpDebug: Avoid crash on invalid CFI-information 2022-06-29 10:02:56 +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
1c008e121d Debugger: improve SysVarToLStr - convert fields of structures too / array in Inspector 2022-06-27 22:34:08 +02:00
Martin
131d1062df Debugger: allow calling SysVarToLStr for variants (via user defined type-names) 2022-06-23 13:54:18 +02:00
Martin
943ebed455 LazDebuggerFp, FpDebug: Fix mem leak in watch-eval calling functions. 2022-06-21 20:08:47 +02:00
Martin
f606986f1b LazDebuggerFp, FpDebug: Enable watch-eval calling functions with records as param (Win-64/32 / Linux-64) 2022-06-21 00:29:07 +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
ae8bbb1cd6 FpDebug: Refactor TFpDbgInfoCallContext (add "AddParam" / remove Dbg-Process from "CreateParamSymbol") 2022-06-21 00:06:04 +02:00
Martin
bba0a43742 FpDebug: Refactor TFpSymbolDwarfFunctionResult, don't reload data from info-entry - use existing type 2022-06-21 00:06:03 +02:00
Martin
4d3a8af105 FpDebug: Fix uninitialized result in watch-to-intf 2022-06-18 18:08:08 +02:00
Marc
1966405611 FpDebug: Initialize mask register 2022-06-15 22:52:56 +02:00
Martin
e2f50ee30d FpDebug: fixed memory leak in FindExportedSymbolInUnit 2022-06-13 22:05:22 +02:00
Martin
90453ce72b Debugger: Inspect-Win, implement paging for large arrays 2022-06-12 22:14:12 +02:00
Martin
0b051af509 IDE, FpDebug: evaluate more sub-items for Inspect Dialog. 2022-06-12 22:14:12 +02:00
Martin
f65d3b93ee Debugger: FpDebug, LazDebuggerIntf, Inspect-Win, basic distinction for proc/func/ref types. 2022-06-12 22:14:12 +02:00
Marc
d942d2ec7f Revert "FpDebug: Handle exceptions in disassembler", since the disassember doesn't generate exceptions anymore
This reverts commit 96271ad5c6.
2022-06-12 18:09:20 +02:00
Marc
9c4acef131 FpDebug: Fix check in groupP and change exceptions into asserts 2022-06-12 18:06:07 +02:00
Martin
41cb28febf FpDebug: fix crash on nil object 2022-06-12 11:43:05 +02:00