Commit Graph

1540 Commits

Author SHA1 Message Date
ccrause
3dcb41cdbd Tweak stack unwinding when inside prologue and epilogue. 2023-12-12 12:08:19 +00:00
ccrause
ea2947290e Store all decoded information, rather than just directly generating text. Provisional code to decode 16 bit LDS and STS on AVRrc. 2023-12-12 12:00:59 +00:00
Martin
c3b6ede519 FpDebug: fix memleak in local vars / Introduced in SetLocalProcInfo commit ead31d2c8c 2023-12-09 20:51:41 +01:00
Martin
adf9883a33 FpDebug: Fix for location lists 2023-12-06 22:08:34 +01:00
Martin
ead31d2c8c FpDebug: Set ProcValue (for FrameBaseNeeded) when locals/params are gotten from ProcVal.Members (affects stack and locals) 2023-12-06 17:02:43 +01:00
Maxim Ganetsky
ddbf9be326 FPDebug: regenerated translations and updated Russian translation 2023-12-04 19:59:26 +03:00
Maxim Ganetsky
607e7f52c0 FPDebug: slightly improved error message 2023-12-04 19:58:27 +03:00
Martin
2acd136518 FpDebug: Implement location-lists (Dwarf 2/3) 2023-12-04 02:19:05 +01:00
Martin
5efaac3f2f FpDebug: find symbol for fpc_raiseexception (and similar) independent of case. 2023-12-04 02:19:00 +01:00
Martin
1bec226da0 FpD: change breakpoints to TFpDbgBreakpoint 2023-12-03 13:05:18 +01:00
ccrause
f11d2744db Cleaned up breakpoint creation. 2023-12-03 13:03:09 +01:00
ccrause
3b833564d5 FpDebug: refactor stack unwinding for AVR 2023-12-02 17:52:40 +00:00
Martin
53474705c4 FpDebug: check error in expressions, when new dbg-values are created. 2023-12-02 16:33:37 +01:00
Martin
c398363932 FpDebug: fix :refcnt for fpc 3.3.1 2023-12-02 16:33:37 +01:00
Martin
8208144cdf FpDebug: test ".." intrinsic operator / Fix error checking 2023-12-02 01:10:39 +01:00
Martin
0922a747d7 FpDebug: fix MaskBreakpointsInReadData. Don't remove non-set breakpoints 2023-11-28 14:01:43 +01:00
Martin
476cfd4484 FpDebug: refactor stack unwinding. Introduce TDbgStackUnwinder and new classes for X86 2023-11-28 01:40:48 +01:00
rich2014
b5db1bf52f FpDebug: fix the compilation issue introduced by 1633420 on MacOS 2023-11-28 01:48:04 +08:00
Juha
1633420b55 FpDebug: linux, add unit syscall / part of issue #40599 2023-11-24 12:16:02 +01:00
Martin
b97a9b80a1 FpDebug: fix disassembler DPPD... / Issue #40567 patch by Red_prig (Pavel) 2023-10-30 18:26:14 +01:00
Martin
3100c5c321 FpDebug: fix disassembler "rep ret" Issue #40562 patch by Red_prig (Pavel) 2023-10-16 11:38:00 +02:00
Martin
cecc5ee87d FpDebug: fix disassembler pause,psrldq,extrq... Issue #40555, #40557, #40558 patch by Red_prig (Pavel) 2023-10-15 18:32:30 +02:00
Martin
d55f353980 FpDebug: 32bit linux target. "HasId" takes an untyped arg. The caller must always pass 64 bits. (itu8 is used to create the map) 2023-10-14 14:33:53 +02:00
Martin
0fad4e40d9 FpDebug: Handle overflow for relocation with 32bit target. RelocationOffset is stored as QWord, but can be negative. For 32bit targets the overflow must be masked out. 2023-10-14 14:05:39 +02:00
Martin
a6999c26a6 FpDebug: prevent crash, if library is added twice (incorrect handling for Linux in SynchronizeProcMapsWithLibraryList) 2023-10-14 13:45:26 +02:00
Martin
1db2f6aab4 FpDebug: On Linux read .dynsym if .symtab does not exist. If .symtab exists, then .dynsym should be a subset. 2023-10-14 12:57:14 +02:00
Martin
62e7f5665a FpDebug: fix disassembler vmov.. Issue #40552 patch by Red_prig (Pavel) 2023-10-13 20:28:50 +02:00
Martin
9cff61c5a0 FpDebug: fix disassembler vzero... / test reg.l Issue #40546 and #40549 patch by Red_prig (Pavel) 2023-10-13 13:34:54 +02:00
Martin
8a343f5bc1 Debugger: more asm unwinding 2023-10-09 18:56:51 +02:00
Martin
67069ef84b FpDebug: fix disassembler movq/vmovq Issue #40541 patch by Red_prig (Pavel) 2023-10-09 18:33:52 +02:00
Martin
a50a1e18b5 LazDebuggerFp: fixed uninitialized result 2023-10-07 19:50:26 +02:00
Martin
97c7e680b7 FpDebug: fixes for stack frame search 2023-10-07 14:06:07 +02:00
Martin
8da9f2d084 FpDebug: fix for some missing stackframes 2023-10-05 19:22:31 +02:00
Martin
710fa6f135 FpDebug: fix disassembler "vround"/"vmovm" Issue #40525 #40524 patch by Red_prig (Pavel) 2023-10-02 11:56:23 +02:00
Martin
4cd413a986 FpDebug: fix disassembler "xadd 16bit reg" Issue #40520 patch by Red_prig (Pavel) 2023-09-26 09:03:35 +02:00
Martin
81596aa0bf FpDebug: Fix ".." intrinsic, reset error from previous elements (deref nil sets error on Expression, rather than value) 2023-09-03 18:32:06 +02:00
mattias
8d92e3b67d updated makefiles 2023-08-14 20:31:20 +02:00
Martin
0cd1374f3c FpDebug: Fix "=" and "<>" work with booleans 2023-07-23 21:06:15 +02:00
Juha
e65a102527 Remove unit Laz_AVL_Tree, a copy of unit AVL_Tree. Not needed with FPC 3.2.x. 2023-07-07 17:39:03 +03:00
Juha
adfc424e92 Lazarus trunk requires at least FPC 3.2.0. Remove checks for earlier FPC_FULLVERSION. 2023-07-07 17:39:03 +03:00
mattias
fde0e0f965 set main version to 3.99 2023-06-25 17:47:14 +02:00
Martin
92b6ded394 Fix Compile / missing semicolon 2023-06-18 16:50:21 +02:00
Martin
aa389e7e47 FpDebug: fix constant char 'a' as array index. Amend Precedence for [n..m] 2023-06-18 16:03:12 +02:00
Martin
9a0e268738 FpDebug: fix creating result, when mixing ":cc" intrinsic with "[n..m]" slice. 2023-06-11 11:53:01 +02:00
Martin
ceaec5975a LazDebuggerFp, FpDebug: Add option to support "modeswitch AutoDeref" access of values. 2023-06-08 15:26:01 +02:00
Martin
62e692fc24 LazDebuggerFp, FpDebug: Add option to support "modeswitch AutoDeref" access of values. 2023-06-08 14:57:12 +02:00
Martin
846b00b481 FpDebug: implement shl, shr, <<, >> operators in the pascal parser. 2023-06-08 14:04:11 +02:00
Martin
63a4789e76 FpDebug: implement typecast TFooRecord(ordinal) for matching data-sizes. 2023-06-06 14:06:20 +02:00
Martin
47e0610ac8 FpDebug: fixed assert, when storing broken dyn-array (pointer to random mem). Skipped data hit assert. 2023-06-06 14:04:28 +02:00
Martin
044ee4f0bc LazDebuggerFp: load line info (blue dots) for libraries 2023-05-27 13:19:33 +02:00
mattias
7bc5b63fbb updated makefiles 2023-05-27 02:07:12 +02:00
Martin
7689b1865f FpDebug: Fix freeing SOLibEventBreakpoint (when process is stopped, do not access thread state) 2023-05-26 14:05:17 +02:00
Martin
26263f5f4e FpDebug: Fix "step out" finished early, in recursive code (end inside current call, at line of recursive call)
- After fixing "IsAtHiddenBreak" (check frame is *outside* ) there is no need for "if IsAtOrOutOfHiddenBreakFrame then"
2023-05-26 14:05:16 +02:00
Juha
becbb68a0d FpDebug: Use {$PUSH} {$T-} ... {$POP} instead of Pointer() typacasts in some places. 2023-05-21 18:16:44 +03:00
Juha
db2bca3949 Support compiling more of Lazarus + its components with -Sy option. 2023-05-21 01:32:42 +03:00
Juha
5c1be9de89 Support compiling most of Lazarus + its components with -Sy option. 2023-05-20 12:51:35 +03:00
Maxim Ganetsky
1fe3a8a931 FPDebug: updated Russian translation 2023-05-20 02:05:12 +03:00
Martin
69564087ab FpDebug: Allow to deref constant numbers, and show a memory-dump. Issue #36836 2023-05-19 18:13:41 +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
f0ce562200 FpDebug: more range check exceptions / fixed missing begin/end 2023-04-02 20:35:34 +02:00
Martin
11c09530bd FpDebug: do not attempt to cache for unknown array types 2023-03-31 23:20:43 +02:00
Martin
2df8c6199b FpDebug: clear cache for array slice entries. Fix range check, when operating on addresses in target. 2023-03-31 23:16:30 +02:00
Martin
f7ab7582f2 FpDebug: Added basic code for DW_TAG_string_type 2023-03-28 10:53:28 +02:00
Maxim Ganetsky
aba8a43de8 FPDebug: updated Russian translation 2023-03-25 16:39:01 +03:00
Martin
0deadb0dbb FpDebug: find self in class procedure 2023-03-25 08:45:20 +01:00
Martin
c996f57220 Debugger: display data address for strings 2023-03-23 21:31:55 +01:00
Martin
a0ef09293b FpDebug: add intrinsic "len" as shortcut for "length" 2023-03-23 21:31:11 +01:00
Martin
badfeecb5d Debugger: renamed several interfaces, changing "T" prefix to "I" prefix 2023-03-22 19:41:24 +01:00
Martin
0d507a4009 FpDebug: fix nil deref crash in pascal parser. 2023-03-22 11:02:10 +01:00
Martin
73f0e0ea68 FpDebug: FpDbgDwarfFreepascal, when searching all units, search "system" unit last. It can contain 16bit PInteger, even if the app is ObjPas. Also prevent the scoped enums true/false/word in sysutils and typinfo. Related to issue #40173 2023-03-21 18:04:19 +01:00
Martin
c5057d55ed FpDebug: add flag dafHasArtifical - only read value, if present 2023-03-21 16:41:54 +01:00
Martin
3bff86dc23 FpDebug: save time by checking name hash before reading attributes. 2023-03-21 16:41:54 +01:00
Martin
afe8ba3180 LazDebuggerFp, FpDebug: Improve some error messages / Start on i18n 2023-03-21 16:41:53 +01:00
Martin
c56eb62226 FpDebug: Disassemble fixed/remove data for wrong annotations, if value is indirect or relative to register 2023-03-19 21:54:58 +01:00
Martin
33556f939f FpDebug: unrolling stack, using CFI - fixed address in stack-entry (do not subtract 1) 2023-03-17 21:26:23 +01:00
Martin
981c7d949e FpDebug: Disassembler fix line addr/offs for annotation 2023-03-15 13:55:15 +01: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
42ae1a7765 LazDebuggerFp, FpDebug: deal with process-exit while watch-eval-function-call 2023-03-13 12:32:29 +01:00
Martin
2d20810ef6 FpDebug: fixed intrinsic "pos", added: lower, upper, round, trunc 2023-03-13 00:02:39 +01:00
Martin
db27ef882d FpDebug: clean up compile hints 2023-03-12 22:34:28 +01:00
Martin
ca71d82350 FpDebug: Implement substrings via the range-index. MyStr[5..9] now return a substring. 2023-03-12 22:34:27 +01:00
Martin
d331e3ef77 FpDebug: fixes for "substr" intrinsic / optimize using new substring reading 2023-03-12 22:34:27 +01:00
Martin
ea78367138 FpDebug: Improve reading char from "string[index]". Read only the char in question / Do not fail on MemLimit.MaxStringLen 2023-03-12 22:34:27 +01:00
Martin
aa0082f22c FpDebug: Implement array slice in pascal parser, and allow operations on the slice to be mapped to each element. 2023-03-12 22:34:26 +01:00
Martin
3f185f585d FpDebug: Improved error detection, if an array/struct is in un-readable memory, don't keep trying for each element/field 2023-03-11 14:16:16 +01:00
Martin
8ae6281e61 FpDebug: implement set operator = <> >< + - 2023-03-11 12:04:20 +01:00
Martin
d097213d7e FpDebug: "enum in set-variable" operator. 2023-03-10 23:43:53 +01:00
Martin
50296e8cf9 FpDebug: Optimize building result data for arrays. Type-name is the same for each array element. 2023-03-07 17:50:51 +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
0db62b486e FpDebug: added mem-read cache for ArrayToResData / PascalBuilder 2023-03-02 19:56:41 +01:00
Martin
1caa678dcf Debugger: Clean up debugln without log_group 2023-03-02 19:56:37 +01:00
Martin
196981e0a7 FpDebug, app/FpdServer: fixed compilation 2023-03-02 19:56:36 +01:00
Juha
994659c015 Add loongarch64 support. FPC trunk supports it, too. Issue #40127, patch by Alfred Glänzer. 2023-02-25 23:24:38 +02:00
Martin
5895004fde FpDebug: Fix memleak with breakpoint for libraries 2023-02-19 09:36:07 +01:00
Martin
0a13765ec4 FpDebug: Fix setting breakpoint for deLoadLibrary detection. Move to correct thread. 2023-02-16 18:21:51 +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
57da4cd7fd FpDebug: allow calling functions from function-pointer variables. (Not yet method variables) 2023-02-12 21:30:15 +01:00
Martin
9569f7beff FpDebug: Added DW_AT_vtable_elem_location 2023-02-12 20:43:03 +01:00
Martin
f86112c649 FpDebug: Added support for DW_AT_entry_pc. Implemented <func>.EntryPCAddress to return the entry-point. 2023-02-12 18:50:28 +01:00
Martin
766684e0f6 FpDebug: Added error checking. Ensure pointer to information-entry points to an existing entry. 2023-02-06 10:56:56 +01:00
Martin
dd5d291621 FpDebug: Fix watching local/param with name "this". Variables with "this" as name were hidden by the "self" param (that fpc encodes as "this") 2023-02-04 13:24:56 +01:00
Martin
60d221f23a FpDebug: Show "self" in locals window. Fpc encodes it as "this", so FpDebug must replace the name. Issue #39907 and part of issue #40000 2023-02-04 13:00:19 +01:00
Martin
e3a3d33c99 FpDebug: Windows (10 up), use WaitForDebugEventEx to support Utf16 OutputDebugStringW 2023-02-04 08:52:29 +01:00
Maxim Ganetsky
1652b4acf1 Translations: Turkish translation update by Onur ERÇELEN, issue #40106 2023-02-02 23:52:31 +03: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
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
Martin
96271ad5c6 FpDebug: Handle exceptions in disassembler 2022-06-10 15:41:58 +02:00
Martin
f2cbe3d582 FpDebug: PascalParser fix nil object access. 2022-06-09 17:46:25 +02:00
Martin
b0de3bcc01 FpDebug: Use PrettyPrinter and rdkPrePrinted for (nested) not-yet-implemented types (LazDebuggerIntf) 2022-06-09 17:46:24 +02:00
Martin
e7b23f98d0 LazDebuggerIntf, FpDebug: add array and structure types 2022-06-09 17:46:23 +02:00
Martin
e3d41a28e0 FpDebug: Provide access to internal nested type info 2022-06-09 17:46:23 +02:00
Martin
01a6b1dd5f DebuggerIntf, FpDebug: add boolean 2022-06-06 21:08:57 +02:00
Martin
19e0cbf641 DebuggerIntf, FpDebug: add char/widechar 2022-06-06 20:54:36 +02:00
Marc
16321fbd3e FpDebug: Fix range error 2022-05-31 21:47:04 +02:00
Marc
3052c2b048 FpDebug: Add AVX512 extensions of exiting instructions 2022-05-30 22:56:04 +02:00
Marc
86871bc4a7 FpDebug: Clear SIMD flags by default 2022-05-30 22:56:03 +02:00
Marc
fbda5d361c FpDebug: Add load/save option to asmtest 2022-05-30 22:56:02 +02:00
Marc
1e7b32ab20 FpDebug: Split register type enum into register family and operand size as register size 2022-05-30 22:56:02 +02:00
Marc
5d21207723 FpDebug: Replace opcode set with all (new) opcodes 2022-05-30 22:56:01 +02:00
mattias
3140a3db66 fpdebug: added mips and misel 2022-05-29 20:09:45 +02:00
mattias
9e762cde89 udpated makefiles 2022-05-29 19:34:19 +02:00
Martin
fba36b9318 FpDebug: More fixes for "Solved AV in StateMachineValid" 239b2be664 / crash in asm window 2022-05-16 23:10:15 +02:00
Martin
0426064e8f LazDebuggerIntf, FpDebug: add enum/sets 2022-05-16 23:10:14 +02:00
Martin
f190c1ff0b FpDebug: remove empty code 2022-05-16 23:10:14 +02:00
Martin
3ea0e03d3b FpDebug: Improve char/widechar from expression/const - implement size and ord-value 2022-05-16 23:10:14 +02:00
Martin
2991d62a16 FpDebug: refactor wait for comp-unit. (check address before enter WaitForScopeScan) 2022-05-16 17:03:05 +02:00
Martin
8baaf99684 FpDebug: Improve fix for dangling pointer to FScanAllWorker.FScanScopeList. 2022-05-16 17:03:05 +02:00
Joost van der Sluis
be75a9d85e FpDebug: Fixed mistake in attempt to solve AV in StateMachineValid 2022-05-13 22:50:52 +02:00
Joost van der Sluis
239b2be664 FpDebug: Solved AV in StateMachineValid 2022-05-13 20:27:54 +02:00
Martin
7d9af9a857 FpDebug: disable warning "case not covering all values" 2022-05-12 21:19:34 +02:00
Martin
ef032fca2d FpDebug: provide trace debugln for errors in worker threads 2022-05-12 21:19:34 +02:00
Martin
315bb059d8 FpDebug: fix overflow in stack eval 2022-05-09 23:48:30 +02:00
Martin
915fbfa830 FpDebug: Workaround for dangling pointer to FScanAllWorker.FScanScopeList (in FCompUnitScope.FScopeListPtr), set by FScanScopeList.BuildList. 2022-05-09 01:22:32 +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
Joost van der Sluis
abad276cd4 FpDebug: Fixed 'Unable to open file SYSV00000000' exceptions 2022-05-01 23:08:45 +02:00
Martin
94ae766164 FpDebug: PascalParser, allow $ sign in identifiers. Required for mangled classnames / specialized generics ... 2022-04-22 12:04:46 +02:00
Martin
ca8c6a84e2 FpDebug: Fix PascalParser.ResetEvaluation 2022-04-22 12:04:46 +02:00
Joost van der Sluis
09d676c6ba FpDebug: Ability to request a strings codepage 2022-03-26 20:13:00 +01:00
Martin
76d9771c34 Debugger: More LazDebuggerIntf. Add/Improve numeric, pointer, float and string watches 2022-03-24 00:39:04 +01:00
Martin
1ba6c2f11a FpDebug: Fix for FpGdbmi (Windows). FpGdbmi does not knew the LoadedAddr, replace the nil value with the default ImageBase. 2022-03-24 00:39:03 +01:00
Martin
4f8efdd21f FpDebug: fix warnings. 2022-03-24 00:39:03 +01:00
Martin
22ef2d781f FpDebug: optimization 2022-03-24 00:39:02 +01:00
Martin
c7e123fd8d FpDebug: Fix stack-overflow for types with recursive declaration. 2022-03-24 00:39:02 +01:00
Martin
624696270b FpDebug: Fix QuoteWideText => wrong result len 2022-03-04 00:47:32 +01:00
Martin
625e655423 FpDebug: fix Memleak. Introduced in "PascalPrinter, Automatically deref pointers to string types. Issue #39559" / a400e1f8c7 2022-03-04 00:37:27 +01:00
Martin
95a5c05edc FpDebug: Do not process data, after MemRead failed. 2022-03-03 00:46:11 +01:00
Martin
27f4c50dbd FpDebug: Fix RangeCheck, TByteArray has an upper limit of 32k. 2022-03-03 00:46:11 +01:00