Commit Graph

239 Commits

Author SHA1 Message Date
martin
3e545f0813 LazDebuggerFp: change default for NextOnlyStopOnStartLine. Now set to "False". Only affects "Step out"
git-svn-id: trunk@63076 -
2020-04-25 13:23:30 +00:00
martin
e0ebb5cb56 FpDebug: allow changing current thread on Linux
git-svn-id: trunk@63068 -
2020-04-24 20:08:22 +00:00
martin
bb08a7b8cb FpDebug: do not ExecuteInThread while running / prevent IDE hanging
git-svn-id: trunk@63066 -
2020-04-24 20:08:19 +00:00
martin
1cc3be175c FpDebug: prevent debugger thread from crashing / prevent IDE hang, waiting for crashed thread.
git-svn-id: trunk@63064 -
2020-04-24 20:08:16 +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
667546f298 FpDebugger (all): prevent nil deref, for empty watch (auto instance class)
git-svn-id: trunk@62811 -
2020-03-25 15:51:09 +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
676c17f1cf FpDebug: Refactor disassembler into class
git-svn-id: trunk@62746 -
2020-03-12 14:09:14 +00:00
martin
834a18b043 FpDebug: Fix Command.DoContinue. Do not read DbgThread.GetInstrPtr if the event is caused by another thread. On Linux the none-event thread (belonging to the command) may not be paused/readable.
git-svn-id: trunk@62495 -
2020-01-04 19:44:01 +00:00
martin
6cc8e56bdc FpDebug: Fixed IDE hang on linux. ExecuteInDebugThread can be called recursive (e.g., by MemReader)
git-svn-id: trunk@62491 -
2020-01-04 18:23:06 +00:00
martin
8bdb3bfd79 FpDebug: fix mem leak / cross debug to win32 causes 2 load events for ntdll
git-svn-id: trunk@62480 -
2020-01-04 03:00:09 +00:00
martin
98aa637a42 FpDebug: debugln
git-svn-id: trunk@62406 -
2019-12-16 23:22:53 +00:00
martin
ce0adcee42 LazDebuggerFp: fix compile with 3.3.1
git-svn-id: trunk@62350 -
2019-12-08 03:24:37 +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
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
b206664b05 LazDebuggerFp: Fixed/Workaround an endless loop with auto-continue breakpoints. The new async-stack-eval was not taken into account.
git-svn-id: trunk@62319 -
2019-12-03 01:55:29 +00:00
martin
e5f3e33463 LazDebuggerFp: Fix watches evaluation not called, if stack had less than 5 frames. FReqList was not cleared, since "add" happens after "remove" (remove called during create)
git-svn-id: trunk@62304 -
2019-11-27 01:52:41 +00:00
martin
33105a74b6 LazDebuggerFp: use GetParamsAsString from FpDebug
git-svn-id: trunk@62173 -
2019-11-03 17:05:36 +00:00
mattias
f46c547347 lazdebugger: clean up
git-svn-id: trunk@62110 -
2019-10-22 15:10:45 +00:00
martin
93784272ae FpDebug: Eval threads first. Avoid double refresh of other windows.
git-svn-id: trunk@62051 -
2019-10-13 21:52:28 +00:00
martin
e44a64751f LazDebuggerFp: Improve reaction time to user request next-step/run. If Stack/Watches are still in evaluation then stop them.
git-svn-id: trunk@62050 -
2019-10-13 21:52:26 +00:00
martin
bb9f614179 FpDebug: Fix a leak when stopping/reseting the debugger under heavy multithreaded load. (Windows may have queued events, then the next pause may not be the expected ExitProcess, and clean-up is not triggered.
git-svn-id: trunk@62032 -
2019-10-11 12:07:16 +00:00
martin
cbe21ff4f3 FpDebug: implement watching bitpacked array/record
git-svn-id: trunk@62012 -
2019-10-09 20:06:21 +00:00
martin
f6616221d8 FpDebug: Fix crash on hitting just deleted breakpoint (race condition leads to nil object access)
git-svn-id: trunk@62005 -
2019-10-06 22:00:31 +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
c545425462 LazDebuggerFp: Refactor getting user selected stack/frame into new method GetCurrentThreadAndStackFrame
git-svn-id: trunk@61988 -
2019-10-05 11:09:45 +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
3cb743cac0 LazDebugger: Fix FindContext must run in thread. Fix watches in other stackframes sometimes fail to eval. Broken in r61968 #fa44aa0f0b.
git-svn-id: trunk@61984 -
2019-10-05 11:09:39 +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
6591981f5f FpDebug: Fix leak introduced in r61951 #cc3a453334 / missing deref for ValueObject in Locals eval
git-svn-id: trunk@61957 -
2019-10-02 11:48:28 +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
ac8e91f785 LazDebuggerFp: Enable TypedAddress
git-svn-id: trunk@61919 -
2019-09-24 23:36:39 +00:00
martin
ce36789c36 LazDebuggerFp: Improve OnIdle handling
git-svn-id: trunk@61893 -
2019-09-16 23:14:19 +00:00
martin
736f8b32fa LazDebuggerFp: fix debugln
git-svn-id: trunk@61837 -
2019-09-08 19:03:06 +00:00
martin
3254177a33 LazDebuggerFp: check correct thread (only top frame) when getting register values
git-svn-id: trunk@61836 -
2019-09-08 19:03:05 +00:00
martin
d9731de769 FpDebug, LazDebuggerFp: More debugln for Breakpoints
git-svn-id: trunk@61817 -
2019-09-05 20:05:55 +00:00
martin
2fa22bf873 LazDebuggerFp: Fix crash when starting debugger with F7/F8 - Disable them, as they currently do not stop at program entry
git-svn-id: trunk@61815 -
2019-09-05 20:05:51 +00:00
martin
e06e1746df LazDebuggerFp: fix uninitialized var
git-svn-id: trunk@61809 -
2019-09-02 14:19:04 +00:00
martin
4e7c7e1842 LazDebuggerFp: correctly eval watches for history snapshots
git-svn-id: trunk@61807 -
2019-09-02 00:44:53 +00:00
martin
4db4bc458b LazDebuggerFp: fix context (crash) during stack eval
git-svn-id: trunk@61804 -
2019-09-02 00:44:49 +00:00
martin
c66f2fd121 LazDebuggerFp: Clean up
git-svn-id: trunk@61745 -
2019-08-22 21:33:22 +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
3ed45630a0 LazDebuggerFp: slightly faster watch eval.
git-svn-id: trunk@61517 -
2019-07-03 18:26:26 +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
209dc36684 LazDebuggerFp: Fix range-check / overflow with bad data.
git-svn-id: trunk@60707 -
2019-03-17 02:49:05 +00:00
martin
f4f3307ca9 LazDebuggerFp: Prevent crash when watches are freed, after debugger was destroyed
git-svn-id: trunk@60692 -
2019-03-16 02:46:15 +00:00
martin
616069b6b2 LazDebuggerFp: Fix context for evaluate on none existing stackframe
git-svn-id: trunk@60357 -
2019-02-07 17:39:06 +00:00
martin
e838d16727 LazDebuggerFp: Fix context for evaluate on higher stack frames (count vs index)
git-svn-id: trunk@60356 -
2019-02-07 17:06:10 +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
af994a75c8 LazDebuggerFp: use dsInternalPause to set/unset breakpoints
git-svn-id: trunk@60035 -
2019-01-08 18:42:59 +00:00
martin
e74b00e9dc LazDebuggerFp: Fix, showing pchar and string version for index access of string/pchar
git-svn-id: trunk@59862 -
2018-12-19 01:42:45 +00:00
martin
4315025999 LazDebuggerFp: Implement OnIdle, make debug history being recorded.
git-svn-id: trunk@59818 -
2018-12-13 17:09:27 +00:00
martin
6c33c7fc13 LazDebuggerFp: Implement conditional breakpoints / fix nil access
git-svn-id: trunk@59815 -
2018-12-13 14:27:51 +00:00
martin
3cffd5e3da LazDebuggerFp: Implement conditional breakpoints
git-svn-id: trunk@59814 -
2018-12-13 12:56:18 +00:00
martin
f4544c2ac8 LazDebuggerFp: Prevent crash, if debugger instance is destroyed before logging is handled.
git-svn-id: trunk@59787 -
2018-12-10 23:26:09 +00:00
martin
801ce13eb6 LazDebuggerFp: fix getting exception class/msg for 64bit targets
git-svn-id: trunk@59742 -
2018-12-06 20:20:23 +00:00
martin
d5cfafb571 LazDebuggerFp: linux, fix running process-access in debug-thread (needed when accessing outer vars for nested procs, for which stack has not yet been evaluated)
git-svn-id: trunk@59696 -
2018-11-29 14:52:08 +00:00
martin
0d4fa259a4 LazDebuggerFp: deal with fpc info for nested procs variable scopes.
git-svn-id: trunk@59656 -
2018-11-25 20:01:36 +00:00
martin
895fe14aed LazDebuggerFp: handle "ignored exceptions" list
git-svn-id: trunk@59655 -
2018-11-25 20:00:38 +00:00
martin
d241c5e016 LazDebuggerFp: more nil handling safety
git-svn-id: trunk@59608 -
2018-11-19 18:07:28 +00:00
martin
96fdbb9d93 LazDebuggerFp: Fix crash, if string read from debugged app is nil / debugged app exception info
git-svn-id: trunk@59607 -
2018-11-19 17:48:12 +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
37e86f2e05 LazDebuggerFp: fix missing result for dcPause
git-svn-id: trunk@59568 -
2018-11-17 12:35:51 +00:00
martin
f275a9445c LazDebuggerFp: return typeinfo for watches
git-svn-id: trunk@59558 -
2018-11-16 13:18:28 +00:00
martin
a67ceac77f LazDebuggerFp: added auto-typecast for objects (watches, inspect / not working for hints)
git-svn-id: trunk@59556 -
2018-11-16 11:13:43 +00:00
martin
84e5ae329a FpDebug: Workaround for dangling thread object
git-svn-id: trunk@59551 -
2018-11-15 22:41:07 +00:00
martin
9daf9a9f45 LazDebuggerFp: Fix/Implement "Reset Debugger" / Refactor: Use LockRelease from base class.
git-svn-id: trunk@59521 -
2018-11-11 21:14:00 +00:00
martin
e31e672112 LazDebuggerFp: fix mem leaks in logging code.
git-svn-id: trunk@59511 -
2018-11-11 18:27:22 +00:00
martin
c54639d227 FpDebug: Allow to specify poNewConsole on windows
git-svn-id: trunk@59488 -
2018-11-07 23:13:11 +00:00
mattias
1fb0143559 lazdebuggers: less hints
git-svn-id: trunk@59214 -
2018-10-01 15:13:00 +00:00
martin
b3d8d81fe7 Debugger: let the debugger request certain compiler opts (eg: needs dwarf, or external info)
git-svn-id: trunk@58680 -
2018-08-05 13:05:21 +00:00
martin
9f8beba93e Debugger: let the debugger request certain compiler opts (eg: needs dwarf, or external info)
git-svn-id: trunk@58679 -
2018-08-05 12:26:21 +00:00
martin
0e9f870052 FpDebug: Fix crash, due to memmanager not initialized
git-svn-id: trunk@58503 -
2018-07-13 15:21:30 +00:00
martin
5d541aec27 DebuggerIntf: Watches can now be created in Updating state. Allowing to bundle change notifications for the debugger backend.
git-svn-id: trunk@58465 -
2018-07-08 20:51:00 +00:00
martin
e23fd4d433 fp debugger: event log for breakpoint hit
git-svn-id: trunk@58434 -
2018-07-03 14:55:45 +00:00
martin
fdb9c0806b fp + fp lldb: allow external DebugInfo on MacOs
git-svn-id: trunk@58406 -
2018-06-25 17:58:46 +00:00
martin
7268f484b5 FpDebugger: fix refreshing thread window when stepping
git-svn-id: trunk@58313 -
2018-06-18 20:24:22 +00:00
martin
cef14db081 DebuggerIntf: Refactor, evaluate now takes a callback
git-svn-id: trunk@58238 -
2018-06-12 22:58:35 +00:00
joost
52df2b872b fpdebug: Fixed mem-leak and do not show threads when not running
git-svn-id: trunk@58161 -
2018-06-06 21:13:16 +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
3d621d07cc fpdebug: FpDebug is not in Alpha state anymore
git-svn-id: trunk@58129 -
2018-06-04 21:59:02 +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
4354b305be lazdebuggers: less hints
git-svn-id: trunk@57789 -
2018-05-04 10:42:40 +00:00
martin
135655e435 fpdebug: fix crash on linux
git-svn-id: trunk@57784 -
2018-05-03 19:37:19 +00:00
martin
ee449027d9 fpdebug: fix compile on linux
git-svn-id: trunk@57783 -
2018-05-03 19:25:09 +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
martin
75193aadbe LazDebuggerFP: Fix logging. Accessing Application.QueueAsync from thread caused leaks
git-svn-id: trunk@57780 -
2018-05-03 18:41:06 +00:00
martin
20e4fc2e10 fpdebbugger: fix releasing context / revision 50963 #b5434dee75
git-svn-id: trunk@51579 -
2016-02-10 18:25:24 +00:00
mattias
eda918198b lazdebuggers: fixed crash if watchlist empty, bug #29238 from Anton
git-svn-id: trunk@50999 -
2015-12-22 22:43:21 +00:00
mattias
b5434dee75 fpdebug: fixed mem leaks, bug #29227 patch from Anton
git-svn-id: trunk@50963 -
2015-12-21 14:48:56 +00:00
martin
fe30e47f9b fpdebug: added params to stack (fixed for frames without context)
git-svn-id: trunk@49132 -
2015-05-22 14:48:42 +00:00
martin
2c1cc645e3 fpdebug: added params to stack
git-svn-id: trunk@49123 -
2015-05-20 21:00:18 +00:00
martin
eb15eb559f fpdebug: fix crash on pause (missing callstack)
git-svn-id: trunk@49099 -
2015-05-18 22:52:38 +00:00