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