Commit Graph

1012 Commits

Author SHA1 Message Date
martin
633b2735dd FpDebug: Test, fix compile
git-svn-id: trunk@63776 -
2020-08-18 11:37:52 +00:00
martin
f2959d4c98 FpDebug: Win, Only read ThreadState once per thread.
git-svn-id: trunk@63775 -
2020-08-18 00:04:04 +00:00
martin
5b077144a9 FpDebug: PascalBuilder, add missing output for some type declarations
git-svn-id: trunk@63772 -
2020-08-17 21:50:40 +00:00
martin
4145a55fee FpDebug: small optimization for GetDerefAddress: TFpDbgMemLocation
git-svn-id: trunk@63771 -
2020-08-17 21:50:38 +00:00
martin
2e3e27feb2 FpDebug: Allow ClassType.Field => for static fields / return type on none static fields
git-svn-id: trunk@63770 -
2020-08-17 21:50:36 +00:00
martin
67a21fe3bb FpDebug: Allow structure/class members to have DW_AT_const_value
git-svn-id: trunk@63769 -
2020-08-17 21:50:35 +00:00
martin
ee5e720d74 FpDebug: Safety checks for Value <> nil. (In case of broken dwarf info)
git-svn-id: trunk@63768 -
2020-08-17 21:50:33 +00:00
martin
2bba45a96c FpDebug: SetRegisterValue for Windows
git-svn-id: trunk@63764 -
2020-08-16 20:23:35 +00:00
martin
1f229f6246 FpDebug: Fix compile on Windows
git-svn-id: trunk@63753 -
2020-08-16 12:40:36 +00:00
joost
a733105c1c fpDebug: Ability to do simple function-calls
git-svn-id: trunk@63751 -
2020-08-16 10:20:37 +00:00
joost
a46dc42df8 * Parameter-type adapted, to clarify what kind of symbol should be passed
git-svn-id: trunk@63709 -
2020-08-09 21:15:39 +00:00
martin
838de9a502 FpDebug: Ensure PauseRequest calls break handler. On Linux Process.Pause does not trigger an PausedAtHardcodedBreak
git-svn-id: trunk@63597 -
2020-07-18 23:22:38 +00:00
mattias
61c53d6f41 LazUtils/FreeType: Separate FreeType stuff into its own package
git-svn-id: trunk@63558 -
2020-07-14 18:09:17 +00:00
mattias
8ceb09a67b make: changed default darwin lcl platform from carbon to cocoa
git-svn-id: trunk@63551 -
2020-07-13 09:00:41 +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
e55e3eec50 FpDebug: Refactor OnHitBreakpointEvent
git-svn-id: trunk@63512 -
2020-07-05 19:16:56 +00:00
martin
50c0885715 FpDebug/LazDebuggerfp: Make memory limits configurable
git-svn-id: trunk@63509 -
2020-07-05 01:18:32 +00:00
martin
9d8b224756 FpDebug: Improve using linker symbols (.symtab) on Linux. (Store SectionEnd Addr as upper bound for search)
git-svn-id: trunk@63501 -
2020-07-03 13:35:35 +00:00
martin
8158231ff0 FpDebug: Windows, fix PE-Symbol loader. Use correct offset for each section
git-svn-id: trunk@63488 -
2020-07-02 13:23:36 +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
688b1c9e2a FpDebug: Improve stack frame detection (64bit)
git-svn-id: trunk@63458 -
2020-06-28 14:43:08 +00:00
mattias
9dcd9ee04d updated makefiles
git-svn-id: trunk@63453 -
2020-06-28 11:01:41 +00:00
ondrej
75bf045f79 fpDebug: i386 compilation
git-svn-id: trunk@63442 -
2020-06-27 06:52:30 +00:00
joost
44f761cd43 FpDebug: array-bounds implemented
git-svn-id: trunk@63440 -
2020-06-26 21:01:39 +00:00
maxim
fd9a80af09 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug #37240
git-svn-id: trunk@63435 -
2020-06-23 21:25:15 +00:00
martin
7291cd0b91 FpDebug: more codepage safety checks
git-svn-id: trunk@63427 -
2020-06-23 12:52:59 +00:00
martin
1f395d4f2b FpDebug: fix darwin, issue #0037234
git-svn-id: trunk@63425 -
2020-06-23 12:45:34 +00:00
mattias
e660c90155 fpdebug: fix compile under darwin fpc 3.0.4
git-svn-id: trunk@63408 -
2020-06-20 19:01:26 +00:00
maxim
d16221820a FPDebug: enabled i18n, fixed typos, added Russian translation
git-svn-id: trunk@63400 -
2020-06-19 23:04:56 +00:00
martin
21f849d337 FpDebug: shorten the output for pchar like types (strings in dwarf 2)
git-svn-id: trunk@63399 -
2020-06-19 21:05:17 +00:00
martin
4b28988db2 LasDebuggerFp: Better error handling when trying to cast to instance class (show none casted class, if cast not avail)
git-svn-id: trunk@63398 -
2020-06-19 17:45:26 +00:00
martin
be7b855369 FpDebug: Introduce configurable limits for mem usages / display len of array or string
git-svn-id: trunk@63397 -
2020-06-19 17:45:24 +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
4570e9dea5 FpDebug: fix reading string constant, broken in r63193 #71fbdbd144 "support for codepages in Dwarf-3"
git-svn-id: trunk@63392 -
2020-06-18 18:08:00 +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
joost
2d8d1f2342 Debugger: fpmake.pp updated, FpDbgHardcodedFreepascalInfo added
git-svn-id: trunk@63386 -
2020-06-17 21:56:49 +00:00
martin
f97bb256fd FpDebug: add error message
git-svn-id: trunk@63384 -
2020-06-17 20:01:27 +00:00
martin
a667bbd318 FpDebug: PascalParser fix deref issues with typecasted pointers
git-svn-id: trunk@63383 -
2020-06-17 20:01:25 +00:00
martin
1b2bf99ec1 FpDebug: refactor showing exception details
git-svn-id: trunk@63380 -
2020-06-17 16:52:12 +00:00
martin
361235b421 FpDebug: Always get a Dwarf Context (if there are any units) => at least for global vars/symbols
git-svn-id: trunk@63365 -
2020-06-16 19:57:31 +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
4e26ecdd80 FpDebug: fix shortstrings, broken in r63193 #71fbdbd144 "support for codepages in Dwarf-3"
git-svn-id: trunk@63361 -
2020-06-16 13:42:47 +00:00
martin
201400311a FpDebug: fix WideString, broken in r63193 #71fbdbd144 "support for codepages in Dwarf-3"
git-svn-id: trunk@63360 -
2020-06-16 13:42:45 +00:00
martin
8a702248e3 FpDebug: fixed wrong type-cast in TFpValueDwarfArray.DoGetOrdering, TFpValueDwarfFreePascalArray, GetInstanceClassNameFromPVmt
git-svn-id: trunk@63359 -
2020-06-16 13:42:44 +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
mattias
40fd619b36 fpdebug: compile with 3.0.4
git-svn-id: trunk@63357 -
2020-06-16 11:26:06 +00:00
martin
e84ff269e4 FpDebug: change GetInstanceClassNameFromPVmt to go through TFpDwarfFreePascalSymbolClassMap
git-svn-id: trunk@63356 -
2020-06-15 18:19:02 +00:00
martin
8d02777940 FpDebug: refactor getting instantiated classname.
git-svn-id: trunk@63355 -
2020-06-15 16:18:26 +00:00
joost
6c4605be97 FpDebug: Added hardcoded debug-info for the evaluation of Exception-classes
git-svn-id: trunk@63349 -
2020-06-12 22:00:53 +00:00
martin
3aff869045 FpDebug: Implemented StepOverTo
git-svn-id: trunk@63304 -
2020-06-06 00:53:46 +00:00
joost
c326b7a628 fpDebug: Fixed endless loop when the debuggee receives an exception-signal. (Calling wstopsig on the signal twice is not the way to go)
git-svn-id: trunk@63282 -
2020-06-03 22:08:16 +00:00
joost
97716ad3a4 * Missing file added to package, and marked some units as specific for a target
git-svn-id: trunk@63214 -
2020-05-23 07:32:45 +00:00
joost
5c8d50b386 FPMake: Regenerated
git-svn-id: trunk@63210 -
2020-05-22 15:11:27 +00:00
joost
71fbdbd144 FpDebug: support for codepages in Dwarf-3 FreePascal (3.0.0 and up) AnsiStrings
git-svn-id: trunk@63193 -
2020-05-21 15:11:26 +00:00
martin
c9dea89ec8 FpDebug: Linux, Fix accessing dangling pointer while pausing all threads. (thread removed, after exit-signal)
git-svn-id: trunk@63156 -
2020-05-14 15:55:07 +00:00
martin
c6680d5c01 FpDebug: Improve Step-over/in when stepping of the last "end" line of a procedure. Always step to next line in caller.
git-svn-id: trunk@63075 -
2020-04-25 13:23:28 +00:00
martin
3370955c2b FpDebug: Fix pause on linux
git-svn-id: trunk@63067 -
2020-04-24 20:08:20 +00:00
martin
ee2ae9567c FpDebug: Do not ignore SigTrap
git-svn-id: trunk@63065 -
2020-04-24 20:08:17 +00:00
martin
fb73a010b2 FpDebug: Remember single-step if other threads cause events / deferred events
git-svn-id: trunk@63063 -
2020-04-24 20:08:14 +00:00
martin
11ad3881e8 FpDebug: stepping, avoid double step out.
git-svn-id: trunk@63062 -
2020-04-24 20:08:13 +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
35706ffaa6 FpDebug: Improve step-commands for threads. Events in other threads, do not need single-stepping
git-svn-id: trunk@63059 -
2020-04-24 20:08:07 +00:00
martin
ec587a8ac1 FpDebug: Refactor internal jump detection
git-svn-id: trunk@63058 -
2020-04-24 20:08:06 +00:00
martin
6c936074db FpDebug: added error checks in disassembler tools
git-svn-id: trunk@63034 -
2020-04-20 15:31:47 +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
944fd0d817 FpDebug: Fixed result of ReadCodeAt. Enable detection of prologue. Fix step-out, fix stack window.
git-svn-id: trunk@63032 -
2020-04-20 12:55:14 +00:00
martin
840b55b4a8 FpDebug: Fix step out, if current is in prologue / IsSteppedOut did not catch as BasePointer was still on outer proc.
git-svn-id: trunk@63031 -
2020-04-20 12:55:12 +00:00
juha
651a6436a2 Support Haiku build. Makefiles are generated from Makefile.fpc files using proper tools. Issue #36316, patch from Alfred.
git-svn-id: trunk@62890 -
2020-04-05 11:35:01 +00:00
martin
1f69cf465e FpDebug: fix typecast/deref for generated-pointer-type "^Foo($1234)", for signed values.
git-svn-id: trunk@62810 -
2020-03-25 15:51:07 +00:00
mattias
a472e9ef09 buildintf: split from ideintf
git-svn-id: trunk@62795 -
2020-03-22 11:58:11 +00:00
martin
57dc078ec5 FpDebug: fix compile on Mac
git-svn-id: trunk@62771 -
2020-03-17 12:42:13 +00:00
martin
8d0043c4c3 FpDebug: fix compile on Mac
git-svn-id: trunk@62765 -
2020-03-13 17:50:04 +00:00
martin
8ac43cbd8d Change PtrUInt to TDbgPtr to be consistent with FpDbgClasses unit
git-svn-id: trunk@62759 -
2020-03-12 20:00:13 +00:00
martin
93ee5eb352 Detect socket closed or other error and set status to SIGHUP. Do not access FConnection methods that read or write to socket when status = SIGHUP.
Patch/Contributed by ccrause

git-svn-id: trunk@62758 -
2020-03-12 14:21:18 +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
9df6eea67a Enable/IFDEF reverse disassembling for X86 to test concept. Base algorith not great for X86 variable length encoding
Patch/Contributed by ccrause

git-svn-id: trunk@62755 -
2020-03-12 14:21:13 +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
0aed1400c1 Added FpDbgAvrClasses to uses list so that AVR debugging is available in fpd
Patch/Contributed by ccrause

git-svn-id: trunk@62751 -
2020-03-12 14:21:07 +00:00
martin
7940dbf1b5 Basic AVR functionality
Patch/Contributed by ccrause

git-svn-id: trunk@62750 -
2020-03-12 14:21:05 +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
juha
d9daa6776b FpDebug: Prevent an access violation in TDbgImageLoader constructor. Issue #36763.
git-svn-id: trunk@62700 -
2020-03-06 20:09:47 +00:00
martin
e1a09a86f4 FpDebug: fix checking for ImageBase (currently not implemented). Issue #0036499
git-svn-id: trunk@62512 -
2020-01-08 16:56:19 +00:00
martin
439be6f619 FpDebug: Linux, removed assert. Condition can occur when process terminates, as threads have not been restarted
git-svn-id: trunk@62496 -
2020-01-04 19:44:02 +00:00
martin
2282f707cf 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@62492 -
2020-01-04 19:02:04 +00:00
martin
6739277749 Revert "FpDebug: Windows, remove unused code" / WinProcess.Interrupt is used by app/fpd
git-svn-id: trunk@62489 -
2020-01-04 15:00:40 +00:00
martin
5fb2dfc3ed FpDebug: Fix Mem-leak, DefaultMap was not freed. Issue #0036498
git-svn-id: trunk@62488 -
2020-01-04 15:00:38 +00:00
martin
54bbd61a23 Updated project file information. Patch by ccrause
git-svn-id: trunk@62487 -
2020-01-04 15:00:36 +00:00
martin
16a4757fa3 Fixed fpd memory leak caused by dangling TFpDbgMemConvertorLittleEndian.Create instance. Patch by ccrause
git-svn-id: trunk@62485 -
2020-01-04 03:56:59 +00:00
martin
365888b1de Fix fpd memory leak in TBreakPointIdMap. Patch by ccrause
git-svn-id: trunk@62484 -
2020-01-04 03:56:58 +00:00
martin
4e918eebdd Updated macho.pas from compiler folder. Needed the CPU_TYPE_ constants to identify target information. Patch by ccrause
git-svn-id: trunk@62483 -
2020-01-04 03:56:56 +00:00
martin
61e8a903ce FpDebug: FpdCommand, moved "uses fgl" outside ifdef
git-svn-id: trunk@62482 -
2020-01-04 03:36:22 +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
e3313cf793 FpDebug: Version to 0.9
git-svn-id: trunk@62347 -
2019-12-08 02:37:18 +00:00
martin
a2a811c87c FpDebug: debugln
git-svn-id: trunk@62345 -
2019-12-08 00:18:18 +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
66a5571620 FpDebug: Clean/Remove the duplicate Finished/Handled on TDbgControllerCmd
git-svn-id: trunk@62342 -
2019-12-08 00:18:13 +00:00
martin
42eb28852f FpDebug: Win, Fix dropping last char of dll names.
git-svn-id: trunk@62341 -
2019-12-08 00:18:12 +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
cc3e23afb0 FpDebug: Win, Parse DLL-Entry points
git-svn-id: trunk@62338 -
2019-12-08 00:18:07 +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
afd4dead10 FpDebug: Fix LineInfo, EndSequence was not handled, and some addresses resulted in wrong lines (even in the wrong procedure)
git-svn-id: trunk@62335 -
2019-12-08 00:18:01 +00:00
martin
d506a29b8c FpDebug: Fix a potential double-free
git-svn-id: trunk@62320 -
2019-12-03 19:40:41 +00:00
martin
98cc84231b FpDebug: Fix a crash / endless recursion, if a symbol (watch) is not found while in a finally block.
git-svn-id: trunk@62309 -
2019-11-28 02:30:01 +00:00
martin
3cd2c19fc8 FpDebug: more fixes for Disassembler, broken in r62171 #a4e3cbb35e
git-svn-id: trunk@62303 -
2019-11-27 01:52:39 +00:00
martin
9be880c527 FpDebug: fix Disassembler, broken in r62171 #a4e3cbb35e
git-svn-id: trunk@62291 -
2019-11-24 13:57:44 +00:00
martin
764dae935a FpDebug: Fix leak on Linux / Thread objects were not always released
git-svn-id: trunk@62176 -
2019-11-03 17:05:42 +00:00
martin
17dda63638 FpDebug: Refactor freeing thread objects for exited threads
git-svn-id: trunk@62175 -
2019-11-03 17:05:40 +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
a4e3cbb35e FpDebug: refactor dis-asm / Split internal (enum) and text dis-asm / optimize call detection
git-svn-id: trunk@62171 -
2019-11-03 17:05:33 +00:00
martin
2cebe95d18 FpDebug: refactor dis-asm / Disassemble to enum-opcode
git-svn-id: trunk@62170 -
2019-11-03 17:05:31 +00:00
martin
e5692c88e3 FpDebug: ensure any StackFrame data is cleared on run. (fix displaying old stacktraces)
git-svn-id: trunk@62139 -
2019-10-28 17:07:06 +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
f955aac408 Fix compile / issue #0036204
git-svn-id: trunk@62112 -
2019-10-24 20:22:45 +00:00
mattias
d0e20a7e06 fpdebug: clean up
git-svn-id: trunk@62108 -
2019-10-22 15:10:12 +00:00
martin
23a034b033 FpDebug: Change/Fix shortstring detection after array stride fix in fpc. (change by Issue #0036144 )
git-svn-id: trunk@62048 -
2019-10-13 12:25:42 +00:00
martin
b11f360499 FpDebug: limit array stride workaround to fpc < 3.3 / Fix stride calculations
git-svn-id: trunk@62047 -
2019-10-13 12:25:40 +00:00
martin
765c460114 FpDebug: small change to array address error checks
git-svn-id: trunk@62046 -
2019-10-13 12:25:39 +00:00
martin
22aca35233 FpDebug: Use LastError from value object.
git-svn-id: trunk@62045 -
2019-10-13 12:25:37 +00:00
martin
fc63e31186 FpDebug: Prevent a stack overflow, recursive display of record in record constructor "TFoo.Create(a: TFoo)". Outer "AFlags" were hidden, preventing the recursion from being detected
git-svn-id: trunk@62037 -
2019-10-11 12:07:24 +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
ec207608a5 FpDebug: Windows, when terminating the process (stop debugger) collect all pending events.
git-svn-id: trunk@62033 -
2019-10-11 12:07:17 +00:00
martin
c1cec4c5d9 FpDebug: Add operators mod, and, or, xor
git-svn-id: trunk@62028 -
2019-10-10 21:30:20 +00:00
martin
29fa84ca54 FpDebug: Pascal Expression Parser, add constant ansistring. Add operator to compare/concatenate strings
git-svn-id: trunk@62026 -
2019-10-10 21:30:16 +00:00
martin
61e152cc7d FpDebug: accept PChar(nil) as string
git-svn-id: trunk@62025 -
2019-10-10 21:30:14 +00:00
martin
cd76eb1ef2 FpDebug: Improve wide/utf8 string/char handling
git-svn-id: trunk@62021 -
2019-10-10 12:19:40 +00:00
martin
3374d667aa FpDebug: Fix overload compile error with fpc 3.2 / DestSize can not exceed the int64 range
git-svn-id: trunk@62019 -
2019-10-10 11:06:47 +00:00
martin
6fb009a232 FpDebug: Fix calculating length of open array param
git-svn-id: trunk@62018 -
2019-10-10 01:01:43 +00:00
martin
9bdf6eb943 FpDebug: Tests for TFpDbgValueSize operators
git-svn-id: trunk@62015 -
2019-10-09 20:06:26 +00:00
martin
9997f386ba FpDebug: bitpacked array. workaround for issue #36144
git-svn-id: trunk@62013 -
2019-10-09 20:06:22 +00:00
martin
cbe21ff4f3 FpDebug: implement watching bitpacked array/record
git-svn-id: trunk@62012 -
2019-10-09 20:06:21 +00:00
martin
f96c6b9f66 FpDebug: Fix "set of (10..20)" (subrange)
git-svn-id: trunk@62011 -
2019-10-09 20:06:18 +00:00
martin
8b2fa08f3c FpDebug: More fixes to compile for Mac
git-svn-id: trunk@62009 -
2019-10-08 22:50:23 +00:00
martin
4b627656b1 FpDebug: Fix compile for Mac / removed 2 left over declarations / error introduced in watchpoint work
git-svn-id: trunk@62007 -
2019-10-08 18:18:10 +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
4020102b98 FpDebug: Refactor Step-Into. No longer use watchpoints.
git-svn-id: trunk@61989 -
2019-10-05 11:09:47 +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
1097debc48 FpDebug: fix crash when evaluating enum "member". (The identifier representing one of the values of the enum)
git-svn-id: trunk@61969 -
2019-10-03 18:38:13 +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
69d200ec8d FpDebug: check if running before scheduling a pause signal (needed so pause can be called when ProcessLoop is not running / but also checks if the loop does a lot of deInternalContinue
git-svn-id: trunk@61966 -
2019-10-03 18:38:08 +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
aa60af3f9e FpDebug: Remove circular refs
git-svn-id: trunk@61953 -
2019-09-29 21:43:54 +00:00
martin
ab5154ae18 FpDebug: Move type related code from TFpSymbolDwarfDataProc to TFpSymbolDwarfTypeProc.
git-svn-id: trunk@61952 -
2019-09-29 21:43:53 +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
ef00bc4391 FpDebug: PascalBuilder, re-use existing procedure info.
git-svn-id: trunk@61941 -
2019-09-28 19:08:21 +00:00
martin
6dbfb412aa FpDebug: Remove circular ref handling for LocalProcInfo (no longer circular)
git-svn-id: trunk@61940 -
2019-09-28 19:08:19 +00:00
martin
b67765f419 FpDebug: Move cache for SelfParam to Context / remove circular ref for LocalProc.
git-svn-id: trunk@61939 -
2019-09-28 19:08:18 +00:00
martin
df73d42186 FpDebug: Remove duplicate ApplyContext calls
git-svn-id: trunk@61938 -
2019-09-28 19:08:16 +00:00
martin
82f84c23c4 FpDebug: Remove FlastResult from FindSymbol
git-svn-id: trunk@61937 -
2019-09-28 19:08:15 +00:00
martin
2ec08f8a9c FpDebug: rename TDbgInfo.FindSympol into FindProcSymbol
git-svn-id: trunk@61936 -
2019-09-28 19:08:13 +00:00
martin
c7ccbdc276 FpDebug: Change ParentTypeInfo to only hold the structure/array/enum to which the value belongs. Also move it to TFpValue to make it circle-ref free.
Introduce LocalProcInfo for the "local procedure" (if any) to which the symbol belongs.

git-svn-id: trunk@61935 -
2019-09-28 19:08:11 +00:00
martin
0b2536f3f0 FpDebug: Merge StructTypeCast.GetMember... to parent class methods
git-svn-id: trunk@61934 -
2019-09-28 19:08:09 +00:00
martin
320accefd9 FpDebug: allow SetLastError( no-error )
git-svn-id: trunk@61933 -
2019-09-28 19:08:07 +00:00
martin
436265bf70 FpDebug: Remove unused member list
git-svn-id: trunk@61932 -
2019-09-28 19:08:06 +00:00
martin
2ee62a6a50 FpDebug: Remove TypeCastTargetType, use DwarfTypeSymbol (former Owner) which now includes all outer (un-nested) types
git-svn-id: trunk@61925 -
2019-09-26 16:37:26 +00:00
martin
ca3bcf9fa2 FpDebug: Clean up. Remove ValueSymbol => same as DbgSymbol
git-svn-id: trunk@61924 -
2019-09-26 16:37:25 +00:00
martin
9c280bd0e3 FpDebug: Refactor TFpSymbol.Size
git-svn-id: trunk@61923 -
2019-09-26 16:37:22 +00:00
martin
d7a8a70916 FpDebug: Make Pointer deref work without item size. (In case size is not avail, or too big)
git-svn-id: trunk@61920 -
2019-09-24 23:36:40 +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
544b5e616b FpDebug: rename var
git-svn-id: trunk@61917 -
2019-09-24 23:36:35 +00:00
martin
4f54cfa13b FpDebug: clean up a few occasions where FContext is set twice
git-svn-id: trunk@61916 -
2019-09-24 23:36:34 +00:00
martin
f37ef11330 FpDebug: Remove HasBounds (which did not have a ValueObject). Make SubRanges check for their own size too.
git-svn-id: trunk@61915 -
2019-09-24 23:36:32 +00:00
martin
1e7c605983 FpDebug: more verbose last error
git-svn-id: trunk@61914 -
2019-09-24 23:36:30 +00:00
martin
ea3dfb1fa9 FpDebug: Improve detection of class vs record vs object
git-svn-id: trunk@61903 -
2019-09-19 17:29:17 +00:00
martin
f9d28f268b FpDebug: 64bit debugger exe does not have a 10bit Extended (as in 32bit exe). Cross debugger can therefore not display such values. Return an error.
git-svn-id: trunk@61902 -
2019-09-19 13:08:44 +00:00
martin
e2590a7c19 FpDebug: Ensure that the Context is passed on to new Value-objects. Fix crash on nil pointer
git-svn-id: trunk@61900 -
2019-09-18 22:14:02 +00:00
martin
804b5a7be4 FpDebug: Windows, fix closing handles for sub-processes (not currently debugged). Also correctly detach.
git-svn-id: trunk@61892 -
2019-09-16 21:49:27 +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
52a25d352c FpDebug: move ...Command.Init into the thread. In case it needs to access process data.
git-svn-id: trunk@61883 -
2019-09-15 13:22:01 +00:00
martin
618ad4ba32 FpDebug: Fix stepping over an breakpoint that continues (condition/auto-continue/...) / Fix stepping over recursive calls
git-svn-id: trunk@61882 -
2019-09-15 13:22:00 +00:00
martin
533670667b FpDebug: Stepping commands, refactor (partly) detection of "call" instruction.
git-svn-id: trunk@61881 -
2019-09-14 14:33:10 +00:00
martin
48f15f849d FpDebug: Stepping commands, refactor HiddenBreakpoint:
- Move to base-class
- No need to check for other breakpoints (fpdebug can now handle several brk at same address)
- Stop step-out, if break failed to set

git-svn-id: trunk@61880 -
2019-09-14 14:33:09 +00:00
martin
c5fe550fbe FpDebug: Stepping commands, set Handled = Finished => so the loop will end if a step is done
git-svn-id: trunk@61878 -
2019-09-14 14:27:48 +00:00
martin
cc1055fbed FpDebug: Windows, fix stepping over (temp-removed) breakpoint.
- If another thread received a signal before the "step-finished signal" (e.g. thread created / pending sigs) then the temp-break was back in place and kept in place -> the break was hit again instead of stepping over it.
- If another thread exited (and the exit signal was received before the "step-finished signal" then no handling was done at all (no threads suspended / no temp remove breaks)

git-svn-id: trunk@61877 -
2019-09-14 14:27:47 +00:00
martin
fc1a436bed FpDebug: Linux, do not add any SigStop to deferred event list. (It going to be ignored as deInternalContinue anyway)
git-svn-id: trunk@61876 -
2019-09-14 14:27:45 +00:00
martin
4be5e94e3e FpDebug: Linux, do not modify running processes (in case of deInternalContinue, some processes may not be paused)
git-svn-id: trunk@61875 -
2019-09-14 14:27:44 +00:00
martin
c7fae55176 FpDebug: fix flag for breakpoint
git-svn-id: trunk@61874 -
2019-09-14 14:27:42 +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
f17b2727f4 FpDebug: re-arrange order of some classes
git-svn-id: trunk@61872 -
2019-09-14 14:27:39 +00:00
martin
85a2eb7321 FpDebug: fixed uninitialized var, could prevent debugger from stopping when app exits
git-svn-id: trunk@61869 -
2019-09-13 12:09:32 +00:00
martin
3fce95a1c2 FpDebug: Windows, debugln/dbgs include WOW64 names
git-svn-id: trunk@61867 -
2019-09-12 15:33:14 +00:00
martin
c9beb9dffe FpDebug: Windows, fixed Process.Continue with single step request
git-svn-id: trunk@61866 -
2019-09-12 15:33:12 +00:00