Commit Graph

122 Commits

Author SHA1 Message Date
Juha
08c0f4865d SynEdit, FpDebug, LazUtils, IdeIntf: Remove UTF8CompareLatinTextFast calls. 2024-02-09 01:20:35 +02:00
Martin
ad54dc2ceb FpDebug: Prevent range checks on target address computation 2024-02-01 01:45:20 +01:00
Martin
84dc22c63c FpDebug: fix mem-leak, if dwarf can't be read 2024-01-21 11:52:14 +01:00
Martin
532aae6212 FpDebug: Don't read debug info with unknown DW_FORM 2024-01-16 17:31:57 +01:00
ccrause
3ecbb52069 Updated MemModel structure. 2024-01-14 19:29:12 +01:00
Martin
c2e59c7885 FpDebug,LazDebugger: changes to MemManager to allow avr-read-register-as-address 2023-12-12 13:15:32 +01:00
ccrause
86c274950e Implement a ReadRegisterasAddress MemManager method so that it can be overridden for AVR to read register based addresses from two consecutive registers. 2023-12-12 13:15:32 +01:00
Martin
2acd136518 FpDebug: Implement location-lists (Dwarf 2/3) 2023-12-04 02:19:05 +01: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
63a4789e76 FpDebug: implement typecast TFooRecord(ordinal) for matching data-sizes. 2023-06-06 14:06:20 +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
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
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
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
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
ccrause
b787b45f59 Specify CIE address size for AVR8 architecture. 2023-01-08 17:04:58 +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
Martin
8ef10902f3 FpDebug: Stack, CFI - For older FPC (broken CFI) always continue non-CFI eval. 2022-10-27 15:42:59 +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
Joost van der Sluis
4ed7f56bb4 FpDebug: Handle CIEs and FDEs without instructions properly 2022-07-02 00:31:15 +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
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
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
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
Martin
4f8efdd21f FpDebug: fix warnings. 2022-03-24 00:39:03 +01:00
Joost van der Sluis
c8feb2d0e8 FpDebug: Replaced some Pascalish code to perform pointer calculations without range-overflows with code with range-checking disabled 2022-01-02 00:38:52 +01:00
ccrause
218ea083c3 DW_LINE_set_address and target address read operations should respect the target address size. 2021-12-29 14:52:02 +02:00
Joost van der Sluis
e0c4d9c77b FpDebug: cleanup and explanation of the difference between the ImageBase, RelocationOffset and LoadedTargetImageAddr 2021-12-16 00:35:18 +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
Martin
a1c6e559e1 LazDebuggerFp: Cleanup compiler hints 2021-12-12 21:00:27 +01:00
Joost van der Sluis
2a51f03e2b FpDebug fixed calculation of addresses, got broken in commit 5ff2a7d17c 2021-12-11 13:38:30 +01:00
Joost van der Sluis
5ff2a7d17c FpDebug: Calculate the relocated addresses of libraries 2021-12-10 20:17:46 +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
Martin
df98551a5f FpDebug: Implement finding "address for line" before/after the requested line, if there is no entry for the request. 2021-12-07 20:35:49 +01:00
Martin
b3e07ba2b5 FpDebug: fix for logging 2021-12-05 22:44:04 +01:00
Joost van der Sluis
957f76456c FpDebug: Detect Dwarf-5 debug headers and skip unsupported sections 2021-12-05 18:26:09 +01:00
Martin
f49b54bae5 FpDebug: add a few missing "const" for params 2021-11-14 15:36:41 +01:00
Martin
eac49ae44f FpDebug: Fix DW_OP_reg0..31 should return the register-location, not the value in the register (except for DW_AT_frame_base). See note_732607024 in merge-request !28 2021-11-14 11:31:56 +01:00