martin
776651b5e3
FpDebug, test: DisAssembler testcase
...
git-svn-id: trunk@64990 -
2021-04-14 14:34:57 +00:00
mattias
65e16d03fb
fpdebug: less hints
...
git-svn-id: trunk@64686 -
2021-02-28 08:52:37 +00:00
martin
068feeb931
FpDebug: remove MemMgr.DefaultContext. All MemRead/Write must go via a location-context.
...
git-svn-id: trunk@64554 -
2021-02-12 18:31:07 +00:00
martin
6857851554
FpDebug/LazDebugger: add asserts for thread safety
...
git-svn-id: trunk@64542 -
2021-02-11 22:40:29 +00:00
martin
2ae82698cb
LazDebuggerFp: move breakpoints to thread worker queue
...
git-svn-id: trunk@64536 -
2021-02-11 22:40:17 +00:00
mattias
ba067ea6be
fpdebug: fixed compile
...
git-svn-id: trunk@64508 -
2021-02-08 19:55:41 +00:00
juha
b53ad7ceed
Components: Reduce calls to UpperCase() and LowerCase(). Improves performance.
...
git-svn-id: trunk@64506 -
2021-02-08 19:09:30 +00:00
martin
3894fe4f86
FpDebug: fix threadmap iterator in linux classes. Broken by locked-iterator
...
git-svn-id: trunk@64247 -
2020-12-20 11:00:58 +00:00
martin
fa5199045e
LazDebuggerFp, FpDebug: Show an error message, if the debugger cannot run the application. Issue #0038167
...
git-svn-id: trunk@64243 -
2020-12-19 22:39:00 +00:00
martin
43e81576fe
FpDebug: Use thread-save iterator. Issue #0038047 , #38068 . Normal Iterators are added/removed to/from FIterators: TList => which is not thread save. Since the map in question never changes during iteration, the callbacks are not needed.
...
git-svn-id: trunk@64128 -
2020-11-12 12:02:33 +00:00
martin
e2c618e262
FpDebugger: Show classname for functions in stack.
...
git-svn-id: trunk@64022 -
2020-10-15 18:38:20 +00:00
martin
6156b1bf31
FpDebugDebugger: replace Control-thread with ThreadWorkQueue
...
git-svn-id: trunk@64020 -
2020-10-15 18:38:16 +00:00
joost
539c1f9a2b
FpDebug: Renamed TFpDbgHardcodedContext to TFpDbgHardcodedScope
...
git-svn-id: trunk@63899 -
2020-09-20 19:21:53 +00:00
martin
cb9e09de9e
FpDebug: Use available symbol from stack to create SearchScope
...
git-svn-id: trunk@63835 -
2020-08-26 19:15:02 +00:00
martin
54e4b88848
FpDebug: remove circular unit references
...
git-svn-id: trunk@63819 -
2020-08-23 22:57:41 +00:00
martin
953c9964f8
FpDebug: make more string params "const foo :string"
...
git-svn-id: trunk@63810 -
2020-08-22 20:27:14 +00:00
martin
1ba76474e3
FpDebug: Separate Context and SearchScope
...
git-svn-id: trunk@63784 -
2020-08-18 23:12:46 +00:00
martin
93c1ca640f
FpDebug: Rename some context classes, and search functions. Start differentiating between Context and SearchScope
...
git-svn-id: trunk@63783 -
2020-08-18 23:12:42 +00:00
joost
a733105c1c
fpDebug: Ability to do simple function-calls
...
git-svn-id: trunk@63751 -
2020-08-16 10:20:37 +00:00
martin
c84d9e5bfe
LazDebugFp, FpDebug: TestAssert does not set exception frame. Search by IP address
...
git-svn-id: trunk@63535 -
2020-07-08 22:39:00 +00:00
martin
69ee06144d
FpDebug: Fix searching frame by BasePointer
...
git-svn-id: trunk@63533 -
2020-07-08 22:38:56 +00:00
martin
57f2930395
FpDebug: Pause at hardcoded int3
...
git-svn-id: trunk@63513 -
2020-07-05 19:16:59 +00:00
martin
b9173dead1
FpDebug: Added workaround for frame detection. Exceptions stops at entry point, and there can not yet be a frame.
...
git-svn-id: trunk@63461 -
2020-06-28 14:43:13 +00:00
martin
5d80c349fb
FpDebug: find stackframe for exception
...
git-svn-id: trunk@63459 -
2020-06-28 14:43:10 +00:00
martin
a62432ac71
FpDebug: Fixed reading memory for #0 terminated string data
...
git-svn-id: trunk@63393 -
2020-06-18 19:56:30 +00:00
martin
f59a294a01
FpDebug: Fixed reading memory for #0 terminated string data
...
git-svn-id: trunk@63391 -
2020-06-18 18:06:26 +00:00
martin
24b1e22d91
FpDebug: Windows, show dll-entrypoint+offs in stack/thread list
...
git-svn-id: trunk@63387 -
2020-06-18 02:13:00 +00:00
martin
1b2bf99ec1
FpDebug: refactor showing exception details
...
git-svn-id: trunk@63380 -
2020-06-17 16:52:12 +00:00
martin
10fafd96d0
FpDebug: remove deprecated FindContext(address-only)
...
git-svn-id: trunk@63364 -
2020-06-16 19:57:29 +00:00
martin
c41f071d7b
FpDebug: Context for unknown location
...
git-svn-id: trunk@63363 -
2020-06-16 19:57:27 +00:00
martin
a43e155cdb
FpDebug, Debuggers, IDE: Make MemManager easier to access. (via Controller and Instance)
...
git-svn-id: trunk@63358 -
2020-06-16 13:42:42 +00:00
martin
074fc3b2f0
FpDebug: Fix "stepped out" detection for step-over/in. Do not stop an "leave" command.
...
git-svn-id: trunk@63061 -
2020-04-24 20:08:11 +00:00
martin
f2d5fd797b
FpDebug: Refactor storing/comparing stack-pointer/frame for step-out detection. Allow different architectures to provide sub-classes
...
git-svn-id: trunk@63060 -
2020-04-24 20:08:09 +00:00
martin
ea30b6f6b9
FpDebug: Detect internal forwarding jumps, and avoid stopping at them
...
git-svn-id: trunk@63033 -
2020-04-20 15:31:45 +00:00
martin
62facbb44d
Renamed TDbgDisassembler class and all related classes to avoid name clashes with FpDebugDebugger classes.
...
Patch/Contributed by ccrause
git-svn-id: trunk@62757 -
2020-03-12 14:21:17 +00:00
martin
121b9389ee
Naive implementation of reverse disassembling
...
Patch/Contributed by ccrause
git-svn-id: trunk@62754 -
2020-03-12 14:21:12 +00:00
martin
6d6903e246
Introduce minimum and maximum instruction size properties to TDbgDisassembler. This is useful for buffering calculations, also in reverse disassembling. Preread required memory before disassembling to reduce impact of remote target access
...
Patch/Contributed by ccrause
git-svn-id: trunk@62753 -
2020-03-12 14:21:10 +00:00
martin
b014fcdeeb
Let the TProcess call decide, if calls must be made in the correct thread (debugger-thread). Linux/trace only allows the dbg thread access.
...
git-svn-id: trunk@62752 -
2020-03-12 14:21:08 +00:00
martin
8877a5b195
Change Insert/RemoveBreakInstructionCode to virtual because this implementation refers to target specific functionality (int3)
...
Patch/Contributed by ccrause
git-svn-id: trunk@62749 -
2020-03-12 14:20:34 +00:00
martin
2ee9c0fe84
FpDebug: New TTargetDescriptor type used to store target specific information. All target specific classes are automatically registered in the respective initialization sections. TDbgController.Run modified to call CheckExecutableAndLoadClasses which loads target info from specified file, loads global disassembler instance and DbgProcess class. Patch/Contributed by ccrause
...
git-svn-id: trunk@62748 -
2020-03-12 14:20:33 +00:00
martin
2e1bd02f2d
FpDebug: Refactor OsDbgClasses => move as field to DbgController and DbgProcess / Prepare for target specific classes
...
git-svn-id: trunk@62747 -
2020-03-12 14:09:16 +00:00
martin
676c17f1cf
FpDebug: Refactor disassembler into class
...
git-svn-id: trunk@62746 -
2020-03-12 14:09:14 +00:00
martin
98aa637a42
FpDebug: debugln
...
git-svn-id: trunk@62406 -
2019-12-16 23:22:53 +00:00
martin
9a11939004
FpDebug: Fix range check (addresses in target are allowed to overflow)
...
git-svn-id: trunk@62386 -
2019-12-14 15:56:26 +00:00
martin
489625b121
FpDebug, LazDebuggerFp: Implement step to except/finally / step over ignored exception
...
git-svn-id: trunk@62344 -
2019-12-08 00:18:17 +00:00
martin
c1611124b4
FpDebug: Added methods to add disabled breakpoints, and modify existing
...
git-svn-id: trunk@62343 -
2019-12-08 00:18:15 +00:00
martin
b34bc4a730
FpDebug, LazDebuggerFp: Implemented OnLibrary(Un)LoadedEvent / Show in event log
...
git-svn-id: trunk@62340 -
2019-12-08 00:18:10 +00:00
martin
9cd1e928d5
FpDebug, LazDebuggerFp: Use FindProc instead of FindContext to get SymbolInfo entries
...
git-svn-id: trunk@62339 -
2019-12-08 00:18:09 +00:00
martin
2dd36b3cd8
FpDebug: FPC sets some lines to line-num=0 => map them to the next avail line. This will at least be somewhere around the correct location.
...
git-svn-id: trunk@62337 -
2019-12-08 00:18:05 +00:00
martin
f64a5f7d3b
FpDebug: Rewrite of Step-In/Over/Out. Now handle (end-)stepping after leaving current procedure (i.e step to the outer line end, according to "In" or "Over")
...
git-svn-id: trunk@62336 -
2019-12-08 00:18:03 +00:00
martin
751d6dd60d
FpDebug: Start basic detection of frame-base
...
git-svn-id: trunk@62174 -
2019-11-03 17:05:38 +00:00
martin
5f2f41dd34
FpDebug: Allow to create contexct from known ProcSym / Updated TDbgCallstackEntry.GetParamsAsString / Avoid double look-up of proc-symbol
...
git-svn-id: trunk@62172 -
2019-11-03 17:05:35 +00:00
martin
1739434138
FpDebug: fix range check error in FindProcSymbol. (int64 vs qword).
...
git-svn-id: trunk@62138 -
2019-10-28 17:07:04 +00:00
martin
ec3e5b6a07
FpDebug: fix crash on nil-deref.
...
- On Windows FCurrentThread is nil during the ExitProcess event.
- On all platforms CreateThread can (in theory) return nil.
git-svn-id: trunk@62034 -
2019-10-11 12:07:19 +00:00
martin
5ff6c5c0c1
FpDebug: Partial implement WatchPoints.
...
- No local watches yet. Always global scope.
- Break on Write is the same Read/Write
- Info pop up has no old/new value
- No feedback (in some cases) if watch failed to set
git-svn-id: trunk@61990 -
2019-10-05 11:09:49 +00:00
martin
a631e91e53
FpDebug: rename TFpInternalBreakpointBase into TFpDbgBreakpoint / Make other packages use TFpDbgBreakpoint instead of internal class.
...
git-svn-id: trunk@61987 -
2019-10-05 11:09:44 +00:00
martin
9b5b0c8db2
FpDebug: Check stackframe for FindContext in range / out of index
...
git-svn-id: trunk@61985 -
2019-10-05 11:09:40 +00:00
martin
fa44aa0f0b
LazDebuggerFp, FpDebug: Refactor FindContext
...
git-svn-id: trunk@61968 -
2019-10-03 18:38:11 +00:00
martin
3e1d403bae
LazDebuggerFp, FpDebug: Attach and Detach (Windows/Linux)
...
Attach on Linux does not work for apps started with "run without debugging". (Maybe/Probably because the IDE does a separate waitpid on those, and interferes with the waitpid of the debugger?)
git-svn-id: trunk@61967 -
2019-10-03 18:38:10 +00:00
martin
cc3a453334
FpDebug: Remove circular cache for ValueObject.
...
git-svn-id: trunk@61951 -
2019-09-29 21:43:51 +00:00
martin
495c172050
FpDebug: Remove LastMember for structures (part of circle ref with StructureValue)
...
git-svn-id: trunk@61950 -
2019-09-29 21:43:49 +00:00
martin
2ec08f8a9c
FpDebug: rename TDbgInfo.FindSympol into FindProcSymbol
...
git-svn-id: trunk@61936 -
2019-09-28 19:08:13 +00:00
martin
9b5a4935a0
FpDebug: fix wrong type for bound-symbol fields / Enable TypedAddress
...
git-svn-id: trunk@61918 -
2019-09-24 23:36:37 +00:00
martin
4137324e48
FpDebug: Check result of ReadThreadState. Do not use invalid data (on windows this lead to nil deref crash)
...
git-svn-id: trunk@61891 -
2019-09-16 21:49:25 +00:00
martin
151412f007
FpDebug: improve stepping.
...
Refactor: Capture initial data before DoContinue
Fix/Improve: Only check and continue the thread that is stepped / Make HiddenBreakpoint hidden from the rest of the controller.
git-svn-id: trunk@61873 -
2019-09-14 14:27:41 +00:00
martin
cae3f56d05
FpDebug: fixed nil pointer crash when clearing breakpoints, after the debugged app exited.
...
git-svn-id: trunk@61865 -
2019-09-12 15:33:11 +00:00
martin
304f6e7be9
FpDebug: Fix requesting process to pause, broken in r61840 #ece9967721
...
git-svn-id: trunk@61845 -
2019-09-08 23:33:01 +00:00
martin
ece9967721
FpDebug: Keep the loop running, if internal stepping causes deBreakPoint without actually hitting a breakpoint. Required because now there can be several such singlesteps in one iteration of the loop.
...
git-svn-id: trunk@61840 -
2019-09-08 19:03:11 +00:00
martin
876682fc9d
FpDebug: Handle hitting breakpoints, that have been removed while the event was waiting. Still need to re-execute the asm instruction that was hidden by int3
...
git-svn-id: trunk@61839 -
2019-09-08 19:03:09 +00:00
martin
addf952338
FpDebug: Less debugln noise when checking if break exists
...
git-svn-id: trunk@61818 -
2019-09-05 20:05:57 +00:00
martin
d9731de769
FpDebug, LazDebuggerFp: More debugln for Breakpoints
...
git-svn-id: trunk@61817 -
2019-09-05 20:05:55 +00:00
martin
c86c8d65e6
FpDebug: reduce logged errors for messages that are expected (cannot write to terminated process)
...
git-svn-id: trunk@61816 -
2019-09-05 20:05:54 +00:00
martin
00417e251e
FpDebug: Fix stackframe evaluation / In some cases (if stack win was closed, when brk-point hit) only the top frame was displayed.
...
git-svn-id: trunk@61806 -
2019-09-02 00:44:52 +00:00
martin
9fedf06c5f
FpDebug: fix context (crash) during stack eval / currently unused code
...
git-svn-id: trunk@61805 -
2019-09-02 00:44:50 +00:00
martin
5a7c9f1487
FpDebug: Refactor class names for TFpDbgValue and TFpDbgSymbol descendants.
...
git-svn-id: trunk@61722 -
2019-08-18 13:43:45 +00:00
martin
8874afbe6a
FpDebug/LazDebuggerFp: Refactor logging, use LazLogger for all logging.
...
git-svn-id: trunk@61427 -
2019-06-19 15:26:22 +00:00
martin
a2744edd0a
FpDebug: clean up
...
git-svn-id: trunk@61420 -
2019-06-18 18:39:24 +00:00
martin
2fe7c631b4
FpDebug: Fix context for register on higher/non-existing stack frames (count vs index) / refactor
...
git-svn-id: trunk@60358 -
2019-02-07 17:40:20 +00:00
mattias
68aeaf0590
fpdebug: clean up
...
git-svn-id: trunk@60347 -
2019-02-06 08:19:51 +00:00
martin
dac68e42e2
FpDebug, LazDebuggerFp: fix last frame in stack list / allow evaluate more frames
...
git-svn-id: trunk@60335 -
2019-02-04 18:26:11 +00:00
martin
6f10746551
FpDebug: Fix breakpoint not applied / left over old code
...
git-svn-id: trunk@60213 -
2019-01-25 00:42:50 +00:00
martin
88aca89865
FpDebug: More refactor internal breakpoints. More control to OS classes. Improve stopping other threads on Linux
...
git-svn-id: trunk@60160 -
2019-01-23 21:28:44 +00:00
martin
2bf19a2135
FpDebug: fix removing internal breakpoints / fix crash on remove
...
git-svn-id: trunk@60152 -
2019-01-23 00:49:43 +00:00
martin
a48c9c1b69
FpDebug: More refactor internal breakpoints. Move detection for ResetInstructionPointerAfterBreakpoint into OS classes.
...
git-svn-id: trunk@60142 -
2019-01-22 02:11:44 +00:00
martin
ba83c710cd
FpDebug: Start refactor internal breakpoints. Prepare to allow several breakpoints set at the same address.
...
git-svn-id: trunk@60123 -
2019-01-20 19:09:46 +00:00
martin
95d1609a43
FpDebug: add enumerator for threadmap
...
git-svn-id: trunk@60095 -
2019-01-16 22:32:49 +00:00
martin
7ccec4c206
FpDebug: Callstack, adjust to show the current calling line, instead of the line after it. Issue #0034753
...
git-svn-id: trunk@59978 -
2019-01-03 00:12:02 +00:00
martin
88767bcd81
LazDebuggerFp: Fix, Step-over did not stop, if an "auto-continue/none-break" breakpoint was encountered at the end of the step. (the auto continue took priority over the end-of-step)
...
git-svn-id: trunk@59816 -
2018-12-13 15:16:32 +00:00
martin
bba050e333
FpDebug: Disable assert, until fixed
...
git-svn-id: trunk@59727 -
2018-12-04 17:12:05 +00:00
martin
2cace808be
LazDebuggerFp, FpDebug: (windows only) implemented switching threads while paused. (On Linux only one thread is currently paused, so switching is not possible)
...
git-svn-id: trunk@59571 -
2018-11-17 14:16:09 +00:00
martin
c54639d227
FpDebug: Allow to specify poNewConsole on windows
...
git-svn-id: trunk@59488 -
2018-11-07 23:13:11 +00:00
martin
54445f8381
LazDebuggerFP: fix (stackframe) register for 64bit app / enable watches,locals on selected stackframe
...
git-svn-id: trunk@58200 -
2018-06-09 12:35:00 +00:00
joost
317bc74ea3
fpdebug: Fill the IDE's list of threads
...
git-svn-id: trunk@58146 -
2018-06-05 20:44:25 +00:00
joost
1f5eb8d171
fpdebug: Improved handling of threads, removed several assumptions that the main-thread was being debugged
...
git-svn-id: trunk@58128 -
2018-06-04 21:52:32 +00:00
mattias
09619c5659
fpdebug: clean up
...
git-svn-id: trunk@57787 -
2018-05-04 10:41:46 +00:00
martin
5562c074da
IDE, fpDebug, Debuggers: Deal with source lines that have more than one address (e.g. generics). fpDebug: set breakpoints at all addresses of a line.
...
git-svn-id: trunk@57782 -
2018-05-03 18:52:41 +00:00
joost
1de2cbf586
general: Updated address of the Free Software Foundation in copyright messages
...
git-svn-id: trunk@54031 -
2017-01-29 21:04:32 +00:00
mattias
934d3bae21
fpdebug: fixed typo
...
git-svn-id: trunk@52909 -
2016-09-04 12:18:22 +00:00
martin
0edc9138ee
fpdebugger: fix another Free instead of ReleaseRef
...
git-svn-id: trunk@51580 -
2016-02-10 18:42:51 +00:00
mattias
03c19a6402
fpdebug: fixed TDbgWinProcess.Continue if aThread invalid return false
...
git-svn-id: trunk@50885 -
2015-12-17 22:08:19 +00:00