Commit Graph

1134 Commits

Author SHA1 Message Date
Marc
4e6bf84be4 FpDebug: Fix typo in cvttss2si, cvttsd2si, cvtss2si & cvtsd2si instruction 2022-02-17 23:53:43 +01:00
Martin
2333696004 FpDebug: Ensure internal breakpoint is freed, if cmd is finished. Add asserts 2022-02-10 23:30:23 +01:00
Martin
6993390bab FpDebug: Improve Stack after calling TProc(nil) / Call to code not in apps memory 2022-02-09 19:30:40 +01:00
Martin
b6be0ae622 FpDebug: Improve Stack after calling TProc(nil) / Call to code not in apps memory 2022-02-09 15:39:26 +01:00
Marc
11992ed7d7 FpDebug: Fix decoding of extended general purpose registers 2022-02-06 17:52:20 +01:00
Marc
402360049e FpDebug: Fix compilation of asmtest 2022-02-06 17:50:10 +01:00
Martin
2e8783e5e0 FpDebug: fix uninitialized return value 2022-02-01 17:18:19 +01:00
Martin
4482e0ddb8 FpDebug: add {$else} for targets not matched by any of the ifdef 2022-01-26 12:58:31 +01:00
Martin
220c850843 FpDebug: Windows, Fix addresses for non-Dwarf symbols. TFpSymbolInfo does not use the RelocationOffset, so addresses will be directly mapped to their loaded location. 2022-01-16 16:20:28 +01:00
Martin
0e5ea13b8a FpDebug: Add {$IFDEF TEST_FPDEBUG_SINGLE_THREAD} so the code can be run single-threaded. 2022-01-10 14:08:38 +01:00
Martin
d1ac568e96 Debugger: New package LazDebuggerIntf / Replace TWatchValue with TWatchValueIntf 2022-01-10 14:08:37 +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
Joost van der Sluis
a05f75154d * FpDebug: Fix for handling processes that do not provide a real file-handle. 2022-01-01 17:29:43 +01:00
Joost van der Sluis
7750772722 FpDebug: Fix for handling libraries that do not provide a real file-handle. 2021-12-30 20:36:04 +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
4e4c402b62 FpDebug: Remove breakpoints bound to a specific library when this library gets unloaded 2021-12-23 00:32:41 +01: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
Maxim Ganetsky
e71c784ab0 Translations: Brazilian Portuguese translation update by Marcelo B Paula, issue #39516 2021-12-15 02:21:23 +03:00
Joost van der Sluis
190a7267c4 FpDebug: Fixed compilation on Windows 2021-12-14 10:35:59 +01:00
Joost van der Sluis
70d007f0de FpDebug: Differentiate between the BaseAddr and the RelocationOffset 2021-12-13 23:18:10 +01:00
Martin
842abf97c1 FpDebug: Remove some asserts that were to strict. The check is done in ReadThreadState. If that has already been done, the functions do not need the requirement. 2021-12-12 21:00:28 +01:00
Martin
85c71832e3 FpDebug: Win64 SEH finally sub-routines, show correct line for resolved symbol 2021-12-12 21:00:27 +01:00
Martin
a1c6e559e1 LazDebuggerFp: Cleanup compiler hints 2021-12-12 21:00:27 +01:00
Martin
a4b23e0b2a FpDebug: PascalParser, Fix parsing float on localized PC. 2021-12-12 21:00:21 +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
Maxim Ganetsky
b2c460ee34 FpDebug: updated Russian translation 2021-12-11 01:23:43 +03: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
124083f794 FpDebug: Do not crash on unrecognized binary-formats 2021-12-10 17:57:07 +01:00
Joost van der Sluis
1dbef448b0 FpDebug: Removed spaces at start of the line in error-messages. 2021-12-10 17:31:33 +01:00
Martin
5c22ff5ad2 FpDebug: Fix stepping does not stop at next line (seen on Win7 only / Maybe issue #39383).
When checking if a step-in/over returned from going over a called proc (using the hidden-break), do not trust the BasePointer.
2021-12-10 00:29:26 +01:00
Martin
343eb4e47c FpDebug: PascalParser, fixed parsing float. In Pascal the comma is a list-separator. It can not be decimal-point. So using the locale "DecimalSeparor" will get wrong results. 2021-12-09 18:17:57 +01:00
Martin
e618b09804 LazDebuggerFp: Fix Stepping and threads / Ensure loop exits with correct EventType 2021-12-09 18:17:56 +01:00
Maxim Ganetsky
b291a31f11 FPDebug: fixed compilation on Windows 2021-12-09 01:38:49 +03:00
Joost van der Sluis
e9f1ffb855 FpDebug: Load libraries on Linux, and skip incompatible binaries. Also on Windows, for consistency and stability 2021-12-08 22:18:04 +01:00
Joost van der Sluis
b9b35b4252 FpDebug: Set the TDbgImageReader.LoadedTargetImageAddr at creation, or else parts might already been read when it is set. 2021-12-08 00:43:17 +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
Joost van der Sluis
f073c52428 FpDebug: Search for line-information not only within the executable, but also in the loaded libraries 2021-12-07 23:31:41 +01:00
Martin
9877946d86 FpDebug: reduced debugln 2021-12-07 23:21:42 +01:00
Martin
499026c519 FpDebug: Win64 SEH finally sub-routines, find the symbol for the procedure actually owning the finally block 2021-12-07 22:56:11 +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
7534833eb6 FpDebug: Fixed passing dangling pointer. (Currently not used by LazDebuggerFp when doing deExitProcess) 2021-12-07 15:41:58 +01:00
Martin
07e3817870 FpDebug: fix mem leak. Libraries were not freed on Unload. 2021-12-06 00:40:25 +01:00
Martin
7e06003d9d FpDebug: Fix race condition. After FQueue.RemoveThread(Self) the Queue (if waiting in TerminateAllThreads) can destroy itself. So it must no longer be accessed. 2021-12-05 22:44:04 +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
Joost van der Sluis
bc4718efae FpDebug: Ability to pass multiple libraries to OnLibrary(Un)LoadedEvent and detection of loading of libraries on Linux 2021-12-05 01:46:45 +01:00
Martin
d8188bb780 FpDebug: Show "class var" if in current context (no class/instance-name prefix). 2021-12-01 19:55:39 +01:00
Martin
a365f46170 FpDebug/FPD: Add FpDbgDwarfFreePascal - This activates the FPC specific dwarf interpretation. 2021-11-28 10:53:43 +01:00
Martin
b03c9ccbb7 Merge branch 'fpd1' into 'main'
Fix compilation of fpdebug\app\fpd

See merge request freepascal.org/lazarus/lazarus!49
2021-11-28 10:49:11 +01:00
Maxim Ganetsky
738e48c6b7 Translations: French translation update by Gilles Vasseur, issue #39487 2021-11-26 03:47:29 +03:00
Martin
ad58ebedf8 FpDebug, CmdLineDebuggerBase: Remove "design time".... / Add missing changes in packagefile 2021-11-25 21:01:06 +01:00
Martin
fcd147a0bf FpDebug, CmdLineDebuggerBase, LazDebugTestBase: Remove "design time", those are run-time packages (they are for use in the IDE, be serving as base classes to other design time packages. But they should not be listed for installation into the IDE on their own. 2021-11-25 12:54:25 +01:00
ccrause
1e0b55da03 Move management of GController instance to TFDLoop.Inititialize and Destroy. 2021-11-21 10:26:10 +02:00
ccrause
7ae19d4eac Add cthreads if compiled for unix by Fredvs 2021-11-21 10:25:55 +02:00
Martin
9213ca32e8 FpDebug: Fixed MemLeak on Windows: TProcessUtf8 was not freed / introduced in e104c4c418 - merge-request !41 2021-11-20 13:02:22 +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
Martin
0a7f1b1da9 FpDebug: Dwarf location-parser, allow to deref a register-location. See merge-request !28 2021-11-14 09:13:55 +01:00
Martin
9c5208b665 FpDebug: compilation fixes for Mac 2021-11-09 16:34:59 +01:00
Martin
95b4cf9043 FpDebug: compilation fixes for Mac 2021-11-08 15:09:01 +01:00
Martin
89cc21355f FpDebug: fixed visibility warning for InitLoaders 2021-11-08 14:59:14 +01:00
Martin
32aaa9b127 FpDebug: Fix default value / fix test 2021-11-07 15:32:43 +01:00
ccrause
c219bac7dc Fix initialization of TDbgLinuxProcess.AttachToInstance. 2021-11-07 15:20:23 +02:00
ccrause
7e5b510a4e Update StartInstance and AttachInstance method signatures of TDbgWinProcess. 2021-11-06 16:17:58 +02:00
ccrause
dc38deaaa5 Fix signature of inherited call in TAvrProcess.Create. 2021-11-06 14:23:32 +01:00
ccrause
4055d9420b Consolidated parameters for TDbgProcess.Create, StartInstance and AttachToInstance. 2021-11-06 14:23:31 +01:00
ccrause
923fce0cb0 Change StartInstance and AttachInstance to normal methods. TDbgController now calls OSDbgClasses.DbgProcessClass to create a process class instance with a TDbgProcessConfig parameter which can be subclassed and passed around for configuration. The remote configuration is now passed via this parameter as a subclass. 2021-11-06 14:23:28 +01:00
Martin
3b2e56528b Merge branch 'fpdebug-AVR-2021-11-05' into 'main'
Fpdebug: Update AVR support (continuing from !36)

See merge request freepascal.org/lazarus/lazarus!40
2021-11-06 09:01:24 +00:00
ccrause
9f02cfbf72 Remove write access to LoaderList property. 2021-11-05 21:43:44 +02:00
Martin
3b9f8954ba fpDebug: Set Sect.VirtualAddress on Linux / See merge request !36 by ccrause 2021-11-05 17:44:25 +01:00
ccrause
9de2a8dfbc Add a monitor command list to be called after uploading is finished. 2021-11-01 12:20:17 +02:00
ccrause
29cf0ce9d6 TRspConnection.ReadReply to consume all "O" packets until a valid other packet is received. Fixes issue when status query after monitor command resulted in a qemu gdbserver state error as a result of incorrect acknowledge packets. 2021-11-01 12:15:32 +02:00
ccrause
11682281de Fix up naming convention of methods. 2021-11-01 12:15:13 +02:00
ccrause
7bd0e9ab2a Remove commented code, fix comment 2021-11-01 12:15:13 +02:00
ccrause
45351f354b Properly handle console output from gdbserver over RSP. Qemu monitor commands can reply with O packets. 2021-11-01 12:15:12 +02:00
ccrause
211a02deb9 Todo reminders for later improvements 2021-11-01 12:15:12 +02:00
ccrause
052a1245a7 Fix AVR watchpoint issue when watchpoint is already declared when program starts, which leads to an invalid watchpoint. AVR usually starts from address 0, so not calling FindSymbolScope when address is 0 causes this problem. 2021-11-01 12:15:06 +02:00
ccrause
afc60cf708 Fix data watchpoints. 2021-11-01 12:14:57 +02:00
ccrause
d19a267b19 Ensure convertHexWithLittleEndianSwap works for any length of text, provided it fits the range of QWord. 2021-11-01 12:14:57 +02:00
ccrause
5b824b677c If PauseRequested is true, then both SIGINT and SIGTRAP should be treated as deBreakpoint. 2021-11-01 12:14:57 +02:00
ccrause
1529b34ca7 Change behaviour of WaitForSignal to time out after a short while so that other communication such as Ctrl+C can be transmitted while the target is running. Also distinguish between timeout and socket error. 2021-11-01 12:14:57 +02:00
ccrause
f56b453b29 Remove unused variables. 2021-11-01 12:14:56 +02:00
ccrause
77f10b113f Copy CPU registers in refreshRegisterCache. 2021-11-01 12:14:48 +02:00
ccrause
42fa9a820a Add code to extract "thread" stop reason as sent by qemu. 2021-11-01 12:14:48 +02:00
ccrause
a239cd8952 qemu doesnt support the "p" command to read an individual register. Change logic to update all registers with the "g" command when a single register is invalid. 2021-11-01 12:14:47 +02:00
ccrause
68d50adedf Remove redundant check of FStatus 2021-11-01 12:14:47 +02:00
ccrause
c0f05c8dc6 MAX_CODE_BIN should be at least as big as MaxPrologueSize. 2021-11-01 12:14:47 +02:00
ccrause
50e7383718 Wrap socket Read + Write calls in try except to convert exceptions into a SockErr booleanproperty. 2021-11-01 12:14:47 +02:00
ccrause
e0dea1ca30 Workaround to not automatically create socket connection in constructor. The existing try except block did not catch socket expections in the constructor. 2021-11-01 12:14:46 +02:00
ccrause
4c493303a0 Handle simple interrupt frames. 2021-11-01 12:14:46 +02:00
ccrause
3b36f05e27 Remove FP from register list, since the information is already present in registers r28 and r29 2021-11-01 12:14:46 +02:00
ccrause
c6e6de1294 Fixed checking if AAddress is bracketed by StartPC and EndPC. 2021-11-01 12:14:33 +02:00
ccrause
23065e004c Add functionality to get proc start/end addresses from debug info. Used to scan prologue and epilogue for frame information on AVR target. 2021-11-01 12:13:28 +02:00
ccrause
542c98a369 Use the same register names and dwarf indexes in all register lists. 2021-11-01 12:13:18 +02:00
ccrause
7f341cbe68 Tweak PrepareCallStackEntryList to cater for avr-gcc ABI. Added TAvrAsmDecoder.GetFunctionFrameReturnAddress to scan prologue and epilogue for frame information. 2021-11-01 12:13:17 +02:00
ccrause
02c76188e3 Fix indenting and missing bracket. 2021-11-01 12:13:17 +02:00
ccrause
762081ec6f Fix offset of return PC on stack. Trivial (no locals or parameters) stack trace now works. 2021-11-01 12:13:17 +02:00
ccrause
165c4dae9a Start with AVR call stack analysis 2021-11-01 12:13:17 +02:00
ccrause
c6df32a82c Fix to make debugger stop at breakpoint at address 0. Only single step in TDbgAvrProcess.Continue if SingleStep parameter is true. 2021-11-01 12:13:16 +02:00