507 Commits

Author SHA1 Message Date
Rene Gollent
35cadd6f3c Add watchpoint support in DebuggerInterface. 2012-11-05 20:48:33 +01:00
Rene Gollent
9e7a46be20 Extend typecasting to support pointer/address types.
We now parse the user's input to see if it should be a pointer/reference
type and create a derived type accordingly. This allows casting to e.g.
StyledEditApp*.
2012-11-05 17:56:02 +01:00
Rene Gollent
ab7a2ea818 Add support for creating derived types to DwarfType. 2012-11-05 17:55:17 +01:00
Rene Gollent
8a4cdf3e60 Fix handling of notifications. Basic typecasting now works.
Still needs a bit of work to properly grok pointer/reference types.
2012-11-04 16:22:59 +01:00
Rene Gollent
ba4dad8b49 Fix child-creation-needs-value nodes.
We only want to do a delete/create cycle if the node actually changed. Fixes
BMessageValueNode.
2012-11-04 13:10:35 +01:00
Rene Gollent
e8cdcede03 Start adding support for typecast support.
Not yet complete/working.
2012-11-04 09:37:16 +01:00
Rene Gollent
674bc40589 Fix reference problem in InspectorWindow.
On quit, the inspector window needs to detach itself from its current
block and release its reference. Otherwise the next attempt to inspect
the same block will crash since it still contains the deleted window
in its listener list. Also fixes leaking blocks.
2012-11-04 09:09:44 +01:00
Rene Gollent
6e3918fa63 Don't release reference if we don't have one.
Fixes a crash seen if Debugger was run on an unsupported architecture, e.g.
x86-64 (for now).
2012-08-08 19:58:40 -04:00
Ingo Weinhold
7483c98dec Debugger (and some friends): 64 bit fixes 2012-08-05 23:58:25 +02:00
Ingo Weinhold
9b008d31ff Debugger CLI: Add a bunch of new commands
* "thread": prints/sets the current thread.
* "continue", "stop": continue/stop the current thread.
* "sc"/"bt": Print a stack trace for the current thread. Very basic yet.
2012-08-05 01:07:17 +02:00
Ingo Weinhold
86b1039b42 Debugger CliContext: More event handling, current thread
* Introduce the notion of a current thread. That's the one certain
  commands will target (by default).
* Add more event handling in CliContext. There's now a queue of pending
  events which are printed in the input loop at convenient times to
  inform the user about what happened (new/deleted/stopped threads,
  etc.).
2012-08-05 01:07:17 +02:00
Ingo Weinhold
59dbbd147e Debugger: CliQuitCommand: Fix cancel shortcut 2012-08-05 01:07:16 +02:00
Ingo Weinhold
d4586180a6 Debugger CLI: Improve "help" command
Given a command name it prints the command's usage.
2012-08-05 01:07:16 +02:00
Ingo Weinhold
a7580a8299 Debugger: Add CliCommand::PrintUsage() 2012-08-05 01:07:16 +02:00
Rene Gollent
224f75100b Implement support for separate debug info files.
- When loading an image, we now check if it has a .gnu_debuglink section.
  If so, we try to load the linked file for our symbolic debugging information.
  The file is searched for with the following rules:
    1) If self-contained app, app image is looked for in ./debug while
       library/add-on images are looked for in ../debug/.
    2) If the image in question is in one of the global locations
       (/boot/{common,system,home/config}/{lib,add-ons}), we search
       in develop/debug for the corresponding global dir.

  Implements #8135.
2012-07-29 07:12:49 -04:00
Ingo Weinhold
d266c87d17 Debugger: CliContext: Introduce the notion of events
* The input loop can now wait on abstract events, which other threads
  (or even the input loop thread itself) can signal.
* Use the new mechanism in QuitSession().
* Also (with the exception of the SIGINT part) implement
  WaitForThreadOrUser().
2012-07-29 00:28:56 +02:00
Ingo Weinhold
4d8eaa5b11 Debugger: UserInterface.h: style cleanup 2012-07-29 00:28:56 +02:00
Ingo Weinhold
726d557c9e Debugger CLI: Wait for TeamDebugger thread to die before exit() 2012-07-29 00:28:56 +02:00
Ingo Weinhold
8fe9f8b2d0 Debugger CLI: Move more stuff to and extend CliContext
* Move the libedit interface there and provide nicer to use methods.
* Also start adding utility methods for the input loop. It is going to
  manage all interactions of the input loop with outside events.
* Fix the "quit" command. The user is now prompted what to do with the
  debugged team and the input loop thread avoids reentering the input
  loop.
2012-07-27 23:42:01 +02:00
Ingo Weinhold
eba38eb503 Debugger: Change user interface quit and ask user semantics
* UserInterface::SynchronouslyAskUser() is now allowed to return -1 to
  indicate that the user cannot be asked at this point for whatever
  reason. The caller needs to handle that case.
* UserInterfaceListener::UserInterfaceQuitRequested(): Add new parameter
  "quitOption" to specify what is supposed to happen. The previous
  behavior (ask user) is only one of the options. The others are to kill
  the debugged team or to resume it.
2012-07-27 23:42:01 +02:00
Ingo Weinhold
f58478507c Debugger: In CLI mode block SIGINT in all threads
It is supposed to be handled in the input loop thread only (eventually).
2012-07-27 23:42:00 +02:00
Ingo Weinhold
71e5d26b5f Debugger: Add utility class SignalSet 2012-07-27 23:42:00 +02:00
Ingo Weinhold
aacf2782d8 Debugger: Switch from readline to libedit 2012-07-25 00:11:14 +02:00
Ingo Weinhold
f4b1ddb580 Debugger: Coding style: normalize naming, some whitespace fixes
* TeamUISettings[Factory] -> TeamUiSettings[Factory]
* GUITeamUISettings -> GuiTeamUiSettings
* GUISettingsUtils -> GuiSettingsUtils
2012-07-24 00:28:37 +02:00
Ingo Weinhold
48b4d20480 Debugger CLI: Add "threads" command
It just lists the team's thread.
2012-07-23 23:52:46 +02:00
Ingo Weinhold
533a73766d Debugger: Create UiUtils helper class
Currently only a method to get a description for a thread state lives
there (code pulled from ThreadListView).
2012-07-23 23:52:46 +02:00
Ingo Weinhold
a6de32b06c Debugger CLI: Pull QuitCommand out of CommandLineUserInterface 2012-07-23 23:52:46 +02:00
Ingo Weinhold
d0ef75400b Debugger CLI: Start to imbue CliContext with life 2012-07-23 23:52:45 +02:00
Ingo Weinhold
abbcb2caf5 Debugger: Use readline in the CLI
This is a bit hacky, since gdb's readline is used. It would probably be
best to prepare an optional build package.
2012-07-23 23:52:45 +02:00
Rene Gollent
55d6e32c7d Fix name generation for void pointer parameters. 2012-07-21 17:34:31 -04:00
Ingo Weinhold
0a592099a9 Debugger: Rework CLI setup to no longer create a BApplication
The main thread does now serve the CLI input loop.
2012-07-21 09:19:18 +02:00
Ingo Weinhold
6d60b554e6 Debugger: Some basic work to get the CLI going
There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.
2012-07-20 23:32:58 +02:00
Ingo Weinhold
0f1f968ffb Debugger: Actually create the CLI, if requested 2012-07-20 23:32:58 +02:00
Rene Gollent
fe0407cd46 Fix indentation. 2012-07-20 07:34:11 -04:00
Rene Gollent
1f80f2eec3 Fix #8749.
- When a job needs to go dependent on another job, we no longer use recursion
  to manage the execution stack. Instead the job is simply marked as waiting
  and we execute other jobs with no dependencies in the meantime. When a job
  completes, all dependents are moved back onto the unscheduled list and
  executed as needed.

- Adjustments to ResolveValueNodeJob to handle the now asynchronous nature
  of waiting.
2012-07-19 20:24:52 -04:00
Rene Gollent
3a5779744e Handle compound node values in variables view.
- If the node we're looking at is a compound node, retrieve its location
  and show that as the value with an indicator to clarify that it's an object.

- Minor tweaks to tooltip format.
- Style cleanups.
2012-07-18 18:44:56 -04:00
Rene Gollent
666222d3fd Resolve register names, print memory piece size information. 2012-07-18 18:44:55 -04:00
Rene Gollent
2216ccb7e2 Implement support for tooltips in VariableView. Implements #8286.
- These show the memory or register location(s) of the variable over which
  the mouse is hovering.
2012-07-18 18:44:54 -04:00
Rene Gollent
8c4773f75b Adjust address semantics of CStringValueNode.
- When resolving its value, CStringValueNode now sets its node child's
  address to the address of the string buffer rather than the location of
  the originating pointer, which allows things like Inspect to pick that up.
2012-07-15 15:48:07 -04:00
Rene Gollent
17ef26a9f8 Add inspection context menu action.
- TableCellContextMenuTracker now supports menus that don't have a settings
  submenu, since some variables won't have renderer settings but will still
  have context actions.

- Add _GetContextActionsForNode() to retrieve the list of contextual actions
  available for a given model node. Currently this is only adds an action
  to inspect the memory address of the highlighted value, but will be extended
  for other actions later.
2012-07-15 14:34:56 -04:00
Rene Gollent
ae8018310a Set default target in PrepareToShow(). 2012-07-15 14:34:34 -04:00
Rene Gollent
544a66de68 Extend MSG_SHOW_INSPECTOR_WINDOW to allow specifying an initial address. 2012-07-15 14:34:33 -04:00
Rene Gollent
0712121cdb Add support for actions to TableCellContextMenuTracker.
- VariablesView's context menu tracker now optionally accepts contextual
  actions to add to the menu in addition to the current renderer settings.
2012-07-15 14:34:32 -04:00
Rene Gollent
8293199831 Add definition for a general-purpose action menu item. 2012-07-15 14:34:31 -04:00
Rene Gollent
6faa3c9766 Fix #8729.
- If we're asked to generate an entry for a tag we don't recognize,
  return an error so don't then attempt to add a null/invalid entry into the
  compilation unit's entry list and later crash dereferencing it.
2012-07-14 12:09:11 -04:00
Rene Gollent
c163f973e6 Fix resource leak in error cases. CID 611238. 2012-07-14 11:24:22 -04:00
Rene Gollent
2a8e9bb83d Fix missing break statement. CID 611232. 2012-07-14 10:40:44 -04:00
Rene Gollent
c22cb42c69 Clean up dead code. CID 611306. 2012-07-14 10:37:25 -04:00
Rene Gollent
89149ce667 Extend IntegerFormatter to handle non-hexadecimal properly.
- When asking for signed/unsigned, IntegerFormatter was previously
  treating all value types as int64, which would result in much larger
  than expected values in the variable list in some cases. Inspect the actual
  integer type of the variable and adjust the format string accordingly in
  order to deal with that.
2012-07-13 21:04:50 -04:00
Rene Gollent
f55410e169 Fix uninitialized member variable.
- This would randomly prevent the inspector window from being usable
  since we wouldn't create it, thinking it already existed.
2012-07-13 19:49:07 -04:00