Commit Graph

1594 Commits

Author SHA1 Message Date
Martin
f76614452c FpDebug: more intrinsics: Try, TryN, Ord, Log, Pi, Ln, Sqrt, Sin,Cos,Tan (includes part of issue #40839 ) 2024-07-22 23:44:38 +02:00
Martin
e98a5d2b44 FpDebug: Add cache for flatten intrinsic. / Ensure the same TFpDbgSimpleLocationContext object is used for each watch (on the Parser-expression), so it can act as key. 2024-07-22 13:55:55 +02:00
Martin
b61aabee0b FpDebug: add intrinsic :flatten() to walk object chains. 2024-07-22 13:43:43 +02:00
Martin
247439f286 FpDebug: Fixed missing FORCE_LAZLOGGER_DUMMY 2024-07-21 18:58:12 +02:00
Martin
66378dafd9 FpDebug: fix missing refcount / possible dangling pointer for TypeSymbol 2024-07-21 18:58:12 +02:00
ccrause
5c1ef5b508 Remote RISC-V 32 bit support. 2024-07-16 14:18:42 +02:00
mattias
f286fac16b updated makefiles 2024-07-15 10:50:53 +02:00
Martin
76c4dc085a FpDebug: (fix compile) display-format for ymm/xmm 2024-07-12 17:00:07 +02:00
Martin
9092967d44 FpDebug: display-format for ymm/xmm 2024-07-12 16:45:49 +02:00
Martin
2d8a7be0db FpDebug: [fix] defer reading register-list for non-threads (only showing in thread window) 2024-07-12 15:08:24 +02:00
Martin
5109ab17f3 FpDebug: defer reading register-list for non-threads (only showing in thread window) 2024-07-12 13:45:17 +02:00
Martin
7cf389203d FpDebug: Windows, Ymm register 2024-07-12 13:45:16 +02:00
Martin
bb2caca569 FpDebug: float register, set soft-fpu exception mask while retrieving. 2024-07-11 21:05:27 +02:00
Martin
c40ded9bd0 FpDebug: float register, set exception mask while retrieving. 2024-07-11 16:19:13 +02:00
Martin
ae9a3f9147 FpDebug: float register, set exception mask while retrieving. 2024-07-11 16:18:07 +02:00
Martin
836e23ff27 FpDebug: fix new registers as watch result / get text, instead of read-int / add unique reg-nums 2024-07-11 12:21:40 +02:00
Martin
713557843d FpDebug: fix compile with fpc 3.2.2 2024-07-11 10:06:31 +02:00
Martin
9b80ed2c3b FpDebug: fix compile win32 2024-07-11 01:25:08 +02:00
Martin
15b8b4893e FpDebug, IDE: show address for RIP relative asm operand 2024-07-11 01:10:18 +02:00
Martin
a7345859cd FpDebug: Windows, added float registers / use softfpu for 80bit (convert to double) 2024-07-11 00:13:53 +02:00
Martin
c424cf492d FpDebug: fix compile win32 2024-07-11 00:05:52 +02:00
Martin
b55faa7970 FpDebug: Linux, added float registers 2024-07-10 23:46:52 +02:00
Martin
85f227d16f FpDebug: Linux, remove define / always true 2024-07-10 20:21:13 +02:00
Martin
70bb0c369a FpDebug: Windows, added float registers 2024-07-10 20:21:13 +02:00
Martin
68b94f6b72 FpDebug: fix for Line-To-AddressMap. Lines for one unit(file) can be split can be split across several CU (generics). Create global line maps. TODO: a single file can also occur in several libraries (separate TFpDwarfInfo) with different line ranges in use. 2024-07-07 13:37:45 +02:00
Martin
48c96f03fc FpDebug: improve compile error msg 2024-07-05 10:28:07 +02:00
Martin
a7e0868e6c FpDebug: Use faster lowercase method (for Code with English idents) 2024-07-01 11:19:17 +02:00
Juha
4b688c01e0 Revert "FpDebug: Disable Typedaddress check (-Sy) FpDbgDwarfDataClasses. Allow compiling rest of the IDE with it."
This reverts commit b53ba8e137.
2024-06-30 16:45:56 +03:00
Martin
a8ca4af5be FpDebug: Don't register, if Sy is active / raise exception if created. (FIX / Missing) 2024-06-30 12:25:39 +02:00
Martin
8f0a1d219c FpDebug: Don't register, if Sy is active / raise exception if created. 2024-06-30 11:40:32 +02:00
Juha
b53ba8e137 FpDebug: Disable Typedaddress check (-Sy) FpDbgDwarfDataClasses. Allow compiling rest of the IDE with it. 2024-06-30 10:56:46 +03:00
Juha
12f7bbf511 FpDebug: Remove an unused and non-existent used unit. 2024-06-30 09:06:51 +03:00
Maxim Ganetsky
2547c55391 Revert "DebuggerIntf: Use units from fcl-proc331/ without "in 'fcl-proc331/...'" syntax."
This reverts commit 6350e1a094.

It broke compilation with FPC 3.2.2. Some other solution should be
found.
2024-06-29 21:38:56 +03:00
Juha
6350e1a094 DebuggerIntf: Use units from fcl-proc331/ without "in 'fcl-proc331/...'" syntax. 2024-06-29 16:22:20 +03:00
Juha
134275eeec LazUtils: Move funcs QuickUtf8UpperCase and QuickUtf8LowerCase from FpDbgUtil to LazUTF8 and name them differently. Part of issue #40893. 2024-06-29 11:55:58 +03:00
Martin
48056a4e61 FpDebug: fix getting exception message for FPC 3.3.1 / read vInstanceSize of TObject to calculate field location. 2024-06-21 23:04:04 +02:00
Martin
71b46c3d5f FpDebug: fix PascalParser, handle coma in sub-expression 2024-06-21 14:11:28 +02:00
Martin
b678f7b820 FpDebug: Ensure correct compiler options 2024-06-10 11:40:43 +02:00
Martin
82cc65e98b FpDebug: fix bound-calc for arrar (non Fpc Dwarf) 2024-06-06 18:00:05 +02:00
Martin
951eacad37 FpDebug: Update fpc version check for broken Dwarf-4 line info 2024-06-06 17:42:35 +02:00
Martin
2d184e35d8 FpDebug: Optimize reading empty string / don't range check codepage address (MemRead will set an error if invalid) 2024-06-06 17:42:35 +02:00
Martin
eabd1453d0 FpDebug: refactor multi-dim array, for non-fpc specific Dwarf. 2024-06-06 17:42:35 +02:00
Martin
c030c1af73 FpDebug: line/address lookup, fix uninitialized result for "file-found", used for pending breakpoints 2024-06-05 17:52:54 +02:00
Martin
8ee632a157 FpDebug: Update user-set address breakpoints, when libraries are loaded/unloaded. Issue #40973 2024-06-05 17:52:54 +02:00
Martin
00507e47df FpDebug: Update internal breakpoints, if they failed to be set. 2024-06-05 17:52:46 +02:00
Martin
6d6f77a870 FpDebug: Move break-setting error flag from Handler to Map 2024-06-05 17:52:45 +02:00
Martin
700a308afc FpDebug: fix looking up symbols with unit-name prefix 2024-05-25 12:51:25 +02:00
Martin
50102fef2b FpDebug: PascalParser, change wrongly named "Context" to "Scope" 2024-05-25 12:51:25 +02:00
Martin
ccdcbb7bcf FpDebug: PascalParser, treat skInterface like skClass 2024-05-23 23:52:22 +02:00
Martin
ed9974287b FpDebug: update DwarfViewer 2024-05-23 20:04:36 +02:00
Martin
a0f66fb2b9 FpDebug: DWARF-4, DW_AT_high_pc can be constant/offset 2024-05-23 20:04:36 +02:00
Martin
7f9391a737 FpDebug: read line-info for Dwarf-4 / fix special opcode must set flags for PrologueEnd, EpilogueBegin, ... 2024-05-23 20:04:36 +02:00
Martin
0d47565d98 FpDebug: add DW_FORM_sec_offest, DW_FORM_exrloc, DW_FORM_flag_present, DW_FORM_ref_sig8 2024-05-23 20:04:35 +02:00
Martin
dc46e8ce2e FpDebug: Windows, implement alternative "normal" file reading (via stream). On 32bit mapping an entire file into memory can fail, if not enough continuous memory is available. 2024-05-23 20:04:35 +02:00
Martin
b2ed046722 FpDebug: defaults for DW_AT_lower_bound 2024-05-22 23:26:09 +02:00
Martin
2383f18a82 FpDebug: Move getting FrameBase to Context. 2024-05-22 22:53:05 +02:00
Martin
515c01c063 FpDebug: Windows, implement alternative "normal" file reading (via stream). On 32bit mapping an entire file into memory can fail, if not enough continuous memory is available. 2024-05-22 17:06:08 +02:00
Martin
b201c1c4d5 FpDebug: fixed spelling 2024-05-22 15:52:53 +02:00
Martin
4e543b65ce FpDebug: Don't create empty CFA entries 2024-05-22 12:12:13 +02:00
Martin
0e3a451627 FpDebug: update DwarfViewer 2024-05-22 12:12:12 +02:00
Martin
8e75a2d637 FpDebug: check for error, before using result from location-parser 2024-05-22 12:12:12 +02:00
Martin
a5c48c104e FpDebug: very basic/partial implementation for DW_OP_call_frame_cfa (register only) 2024-05-22 12:12:12 +02:00
Martin
747b9e5552 FpDebug: consolidate some string related code 2024-05-22 12:12:11 +02:00
Martin
baa905dd96 FpDebug: fixes for DW_TAG_string_type 2024-05-22 12:12:11 +02:00
Martin
45094bcabe FpDebug: add DW_OP_stack_value 2024-05-22 12:12:11 +02:00
Martin
1b6c857812 FpDebug: fix memleak 2024-05-19 13:44:08 +02:00
Martin
c33f507472 FpDebug: fix reading dwarf for arrays with several indexes (written as multiple bounds in the same TAG_array). E.g. as done by llvm. 2024-05-19 13:44:08 +02:00
Martin
dc2c0ee78f FpDebug: fix searching line<>address map. / add test 2024-05-18 23:44:44 +02:00
ccrause
8779a95c72 Output descriptions of target enumerations in place of the ordinal values. 2024-05-13 18:36:48 +00:00
ccrause
81d8d38c5c RSP - Handle multiple output messages from OpenOCD. 2024-05-13 16:15:12 +00:00
Martin
5acbe20f96 FpDebug: Return errors when the debugger can't start. 2024-05-09 14:29:44 +02:00
Martin
190b5e77a7 FpDebug: Return errors when the debugger can't start. 2024-05-09 14:24:28 +02:00
Martin
762f48aeb5 FpDebug: fix out of range in line-address lookup 2024-04-28 00:10:50 +02:00
Martin
6b5a7e75ea FpDebug: workaround, when hardcoded int3 is allowed as user breakpoint, don't stop on internal breakrequest. Issue #40910 2024-04-21 19:36:08 +02:00
Martin
7d11cc3fe8 LazDebuggerFp, FpDebug: Handle multipl-breakpoint at the same address. 2024-04-21 16:59:09 +02:00
Martin
0b2c6bd8fa FpDebug: Allow breakpoints on lines without code (search up to N lines below). 2024-04-21 16:59:08 +02:00
ccrause
b73bed0fed FpDebug: Handle partial overlap between breakpoint data and AData buffer. By CCrause. MR: !279 2024-04-20 17:04:27 +02:00
ccrause
fc4f5ae329 Xtensa - Store all registers read for current stack frame. 2024-04-20 10:20:41 +02:00
Martin
3f2ccce591 IdeDebugger: Displayformat defaults for enum-identifier 2024-04-19 17:30:08 +02:00
ccrause
63881011b3 Use byte offset to locate data to be replaced in MaskBreakpointsInReadData. 2024-04-13 22:58:49 +00:00
ccrause
d56f77c2be Use cross platform sockets.CloseSocket call to close a socket. 2024-04-13 14:45:44 +02:00
ccrause
95205d9bc2 Remove unused variable 2024-04-13 14:45:44 +02:00
ccrause
28c86c583b [fpdebug] Track initialization of the remote connection. Fix some issues with qemu and Bloom debug servers. 2024-04-13 14:45:44 +02:00
Martin
655727ed2b FpDebug: keep "\\?\" filenames. 2024-04-11 13:27:34 +02:00
Martin
1aef153d5f FpDebug: Stepping with F8/F7 should asm-step if no line info is available. Issue #40891 2024-04-11 13:07:03 +02:00
Martin
ca431adcf2 FpDebug, test: disable thread check on Linux. Not required, and currently not fully implemented 2024-03-20 19:45:06 +01:00
martin
5c5e12448d FpDebug, Linux: Fix leaked handle 2024-03-20 19:45:06 +01:00
Martin
6f0d8113cd FpDebug: Remove LCL / Win32Proc 2024-03-18 19:54:48 +01:00
Martin
dec0414cd6 FpDebug: update Makefile 2024-03-18 17:54:30 +01:00
Martin
6aa6ea6983 Ide, Debugger, FpDebug: Implement StdIn/StdOut file redirection. Issue #40458 2024-03-18 14:01:44 +01:00
Martin
ed068882ea FpDebug: Improve dis-asm stack-unwinder. Collect register values. 2024-03-15 22:19:51 +01:00
Martin
a005719185 FpDebug: x86-disassembler: fix vcvtph2ps Issue #40837 2024-03-15 16:18:10 +01:00
Martin
0ad56931a0 FpDebug: x86-disassembler: fix pextr/vpextr Issue #40842 2024-03-14 18:56:13 +01:00
Martin
08a139d30e FpDebug: x86-disassembler: fix pmovzx/pmovsx/vpmovzx/vpmovsx Issue #40844 2024-03-14 18:56:12 +01:00
Martin
4fd8e89e60 FpDebug: x86-disassembler: fix popcnt,bsf,tzcnt,bsr,lzcnt Issue #40843 2024-03-14 18:56:12 +01:00
ccrause
5b4f7aa9f4 Only change MemManagager and MemModel for target AVR 2024-03-12 19:18:49 +00:00
ccrause
c6781743e8 fpdebug - Add xtensa support 2024-03-12 19:18:49 +00:00
ccrause
342fd0f5e8 AVR - FLastFrameBaseIncreased should be initialized in GetTopFrame. 2024-03-03 09:59:27 +02:00
Martin
b471a2961e FpDebug: fix memleak when detaching from process. 2024-03-02 18:38:17 +01:00
ccrause
f808839e56 Fix TAvrMemManager.ReadMemory to read multi-byte values from registers by assuming the bytes are stored in consecutive registers. 2024-02-28 21:07:12 +01:00
ccrause
6915cc97fe Implement CallParamDefaultLocation for AVR. 2024-02-28 21:07:12 +01:00
ccrause
88a0e31b16 For AVR the .text section can start at address 0, rather check if section is not allocated before ignoring it. 2024-02-28 21:07:12 +01:00
Martin
8117ca5a5d LazDebugger: Remove TWatchDisplayFormat from debugger backends. 2024-02-28 00:52:45 +01:00
Martin
be387c3f21 FpDebug: Remove TWatchDisplayFormat from PascalBuilder 2024-02-28 00:52:45 +01:00
Martin
e183ea0b5f Debuggers: Add define FORCE_LAZLOGGER_DUMMY 2024-02-28 00:52:43 +01:00
Martin
b0a5ee38f8 FpDebug: refactor new TFpBreakPointTargetHandler / adjust visibility of fields / move creation to factory method 2024-02-19 12:23:45 +01:00
ccrause
dcd15396b9 Further refactoring of TFpBreakPointMap and TGenericBreakPointTargetHandler for x86 and AVR 2024-02-19 12:23:45 +01:00
Martin
ef78dcf1ba FpDebug: move some breakpoint checks to TFpBreakPointTargetHandler 2024-02-15 21:32:31 +01:00
Martin
c6d52ae4b7 FpDebug: split TBreakLocationMap. Make TFpBreakPointTargetHandler a separate class. 2024-02-15 20:33:34 +01:00
Martin
7d5c98dd45 FpDebug: workaround for https://gitlab.com/freepascal.org/fpc/source/-/issues/40641 2024-02-14 21:49:04 +01:00
Martin
4b6fadabca FpDebug: make TBreakLocationMap a generic with variable storage for the data replaced by a breakpoint 2024-02-14 20:01:56 +01:00
Martin
08b1ca8b65 FpDebug: refactor TBreakLocationMap, split out parts handling Address <> TFpInternalBreakpoint mapping 2024-02-14 20:01:55 +01:00
Martin
e2e2f26c91 FpDebug: change HasBreakpointInfoForAddress, replace IP-1 by GetInstructionPointerForHasBreakpointInfoForAddress 2024-02-13 22:31:28 +01:00
Martin
2b3310eb90 FpDebug: refactor HasBreakpointInfoForAddress 2024-02-13 22:31:28 +01:00
Martin
47c34d2e7e FpDebug: fix reading pty for console window. 2024-02-10 22:12:52 +01:00
Martin
add996429b FpDebug, Windows: Setting thread name by exception, check info of received exception 2024-02-10 21:04:07 +01:00
Juha
08c0f4865d SynEdit, FpDebug, LazUtils, IdeIntf: Remove UTF8CompareLatinTextFast calls. 2024-02-09 01:20:35 +02:00
ccrause
5404ba0351 Implement SetStackPointerRegisterValue and SetInstructionPointerRegisterValue for AVR. 2024-02-08 01:53:46 +00:00
ccrause
eabf701ee5 Fpdebug: protect remote communication in SendMonitorCmd with Enter/LeaveCriticalSection. Also remove unused variables. 2024-02-06 22:20:39 +00:00
ccrause
fcbad07545 Update FStatus when calling DoLocalStep 2024-02-06 13:05:06 +00:00
ccrause
a4832021a4 Create the correct derived TFpWatchPointData class for TDbgRspProcess. 2024-02-06 13:05:06 +00:00
Martin
f091646a21 FpDebug: improve cache received threadnames, if the thread is not yet known (may be suspended). Issue #40699 Patch by Red_prig (Pavel) 2024-02-02 22:09:59 +01:00
Martin
ad54dc2ceb FpDebug: Prevent range checks on target address computation 2024-02-01 01:45:20 +01:00
ccrause
ceb2b0340b Fpdebug: for qemu one needs to single step over a breakpoint before continue will work. 2024-01-29 00:17:35 +00:00
Martin
6c83060d4d FpDebug: cache received threadnames, if the thread is not yet known (may be suspended). Issue #40699 Patch by Red_prig (Pavel) 2024-01-28 12:56:32 +01:00
Martin
efcbc7a685 FpDebug,IDE: Windows, Implement Position and Size for console and default-pos Forms - via Run-Params 2024-01-27 21:19:25 +01:00
Martin
5fca66cad9 FpDebug: Make the TDbgProcess instance available as soon as the filename is set. E.g. to allow setting properties on the process before calling StartInstance. 2024-01-27 12:47:07 +01:00
Martin
ac87f213d1 FpDebug: fix range check in stack unwind (CFI) 2024-01-23 11:26:52 +01:00
Martin
84dc22c63c FpDebug: fix mem-leak, if dwarf can't be read 2024-01-21 11:52:14 +01:00
Martin
fd26073763 FpDebug: Improve StepOut, if at entry of function 2024-01-20 16:14:58 +01:00
Martin
5e62cd71d1 Debugger: Improve Thread-Name display. Add support for thread name from GDB (only recent gdb versions) 2024-01-20 16:14:57 +01:00
Martin
7f8267f283 FpDebug: EXCEPTION_SET_THREADNAME check for thread-id. Issue #40699 2024-01-20 12:14:08 +01:00
Martin
5d6489a45a FpDebug: Fix mem leak, if breakpoint is set to "auto destroy" 2024-01-19 15:47:15 +01:00
Martin
ec98b15709 FpDebug: Fix dangling pointer, if debug-backend sets breakpoint too late. 2024-01-19 15:47:14 +01:00
Martin
36aef932c7 FpDebug: EXCEPTION_SET_THREADNAME check for thread-id. Issue #40699 2024-01-19 15:47:14 +01:00
Martin
8ed6d90eb1 Ide,FpDebug: In FpDebug add a thread number (order of first occurrence). In the IDE, prefix the ID with the number. 2024-01-18 22:21:39 +01:00
Martin
532aae6212 FpDebug: Don't read debug info with unknown DW_FORM 2024-01-16 17:31:57 +01:00
Martin
9700c1459b FpDebug: Linux, Use unit "SysCall" rather than "external name". Provide option to define FPDEBUG_USE_LIBC to force use of libc instead of DoSysCall (related to issue #40575) 2024-01-14 23:36:09 +01:00
Martin
f9e55734c6 FpDebug: update apps 2024-01-14 19:29:14 +01:00
Martin
60d2e5540e AMEND 2024-01-14 19:29:13 +01:00
Martin
a8c78c1862 FpDebug: Clean up TFpDbgLocationContext.ReadAddress - MemModel does fill in all fields 2024-01-14 19:29:13 +01:00
Martin
dbd0141eac FpDebug: MemModel for Win/Darwin / fixes 2024-01-14 19:29:13 +01:00
ccrause
c327f03044 Move IsReadableLoc and IsReadableMem to MemModel. 2024-01-14 19:29:13 +01:00
ccrause
3ecbb52069 Updated MemModel structure. 2024-01-14 19:29:12 +01:00
Martin
5a1d892e69 FpDebug: prevent div-by-zero in the debugger (in the IDE) while evaluating watches. 2023-12-30 20:04:08 +01:00
Martin
5c6662f3e7 FpDebug: Add comparing enum-values in watches "enum1 >= enum2" 2023-12-30 20:03:06 +01:00
ccrause
5023c232e1 Fpdebug: Cleanup of unused code for RSP classes 2023-12-29 07:16:41 +02:00
ccrause
a5662dc472 Fpdeubg: More register management code for AVR and RSP 2023-12-29 07:16:33 +02:00
ccrause
fd3565584c Fpdebug: Display status register flags for AVR 2023-12-29 07:16:20 +02:00
ccrause
5e4596e57a Fpdebug: separate AVR specific code from generic RSP related debug code 2023-12-29 07:15:47 +02:00