#
00c45752 |
|
28-Sep-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Debugger: Use StringWidth()+DefaultLabelSpacing() to determine column widths. Much less cut off text in the default layout.
|
#
1f34a738 |
|
30-Aug-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Debugger: Use monospace font in tables that display addresses. This makes stack traces, registers, variables, etc. so much nicer and easier to read and work with. Ahh, much better.
|
#
e2ab1a8e |
|
01-Aug-2018 |
Fredrik Holmqvist <fredrik.holmqvist@gmail.com> |
Unused and should be removed, fixes last commit
|
#
61e207f6 |
|
01-Aug-2018 |
Fredrik Holmqvist <fredrik.holmqvist@gmail.com> |
Unused Approved by DeadYak to remove
|
#
9832d1f8 |
|
01-Aug-2018 |
Fredrik Holmqvist <fredrik.holmqvist@gmail.com> |
Use strict typing
|
#
77007502 |
|
18-Jan-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Rework type handlers to allow for custom selection. TypeHandler: - Add name field for presentation purposes. Adapt subclasses accordingly. TypeHandlerRoster: - Add methods to count and retrieve all type handlers for a given type, and adjust CreateValueNode to allow for passing in an explicit handler. Adjust callers accordingly. VariablesViewState: - Add helpers to store an explicitly chosen type handler for a node. TypeHandlerMenuItem: - ActionMenuItem subclass that takes care of reference management for its contained type handler. VariablesView: - Add context menu for choosing type handlers if applicable. Implement support for invoking said type handlers in a similar manner to explicit typecasts. - Adjust saving/restoring the view state so that hidden nodes are taken into account as well. This is necessary since it may be the case that the handler had to be applied to the hidden child rather than the visible node (i.e. the BMessage handler when applied to a pointer to a BMessage). All together, these changes allow choosing to switch between views of a type when the Debugger has multiple handlers for it. For example, for BMessages this allows switching between displaying the raw underlying structure vs the decoded message content.
|
#
3995592c |
|
10-Jan-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #13939, more work on #13800. - Fix various cases where OpenHashTables weren't being cleared properly. - Fix various reference counting errors. - Simplify FileManager reference handling. - Fix bug in LocatableDirectory where the directory named '/' would have its name returned as empty. This would lead to failed lookups for entries already in the table, and ultimately corrupted the hash table when deleting unused entries, leading to #13939. This was previously never noticed due to the entries not being freed properly. - AbbreviationTable wasn't clearing its entries.
|
#
10ba3348 |
|
30-Nov-2016 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanup. - Split MessageCodes.h into a second file that separates out the application-specific message codes from those used by the core. Adjust includes accordingly. No functional change.
|
#
fce4895d |
|
29-May-2016 |
Rene Gollent <rene@gollent.com> |
Debugger: Split into core library and application. - Add subfolder src/kits/debugger which contains the debugger's core functionality and lower layers. Correspondingly add headers/private/debugger for shared headers to be used by clients such as the Debugger application and eventual remote_debug_server. Adjust various files to account for differences as a result of the split and moves. - Add libdebugger.so to minimal Jamfile.
|
#
081d56c4 |
|
09-Nov-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix potential VariablesView crash. - In some contexts, VariablesView doesn't have an associated thread and stack frame, which would lead to a potential crash when resolving expression nodes.
|
#
be32382a |
|
10-Nov-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Adjust initial configuration of VariablesView. - VariablesView is now passed a ValueNodeManager to use at construction time, rather than creating one itself internally. - Adjust TeamWindow accordingly.
|
#
90da71b6 |
|
02-Aug-2015 |
Rene Gollent <rene@gollent.com> |
VariablesView: Style cleanups.
|
#
3bb17aa9 |
|
24-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Minor refactoring. VariablesView: - Factor out setting up a variable edit request into a helper function. Adjust table node invocation accordingly. - Add Edit variable context menu item if appropriate.
|
#
d88d941c |
|
23-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Finish variable edit support. VariablesView: - Intercept table node invocations. If the invocation corresponds to a writable variable, request a corresponding editor and bring up a an edit window for it. - Handle requests from the edit window to write the final updated value of the variable. This implements the last missing piece for ticket #9708, except for an editor for floats.
|
#
6edcd0bf |
|
17-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Build fix.
|
#
5b026a29 |
|
13-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Improve variable tooltips. VariablesView: - Tooltips now indicate if there was a problem resolving either the location or the actual value of a given variable, as well as whether or not the variable is editable in its current location.
|
#
299f564e |
|
26-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix potential crash in VariablesView. VariableTableModel: - When attempting to retrieve the type for a given node, ensure that it actually has a value node first. This might not necessarily be the case if no appropriate type handler was found.
|
#
d2a6418f |
|
07-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups, no functional change. - Remove out-of-place accessor to type lookup info on ValueLoader. Instead, adjust CreateChildren() and CreateChildrenInRange() to take a TeamTypeInformation parameter. This can then be used by value nodes that need to be able to look up type information in order to properly publish their children, such as BList and BMessage. Refactor subclasses and callers accordingly
|
#
c3f9f555 |
|
16-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Minor visual tweak in VariablesView. - Expression evaluation results are now highlighted as changed when they're first added, since they're immediately of interest, unlike uninitialized variables that're first coming into scope.
|
#
9dcef048 |
|
15-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. Get rid of ExpressionEvaluationWindow. - When asking to evaluate an expression via the Tools menu, we now bring up a prompt window the same as the one used to add a watch expression. This in turn works exactly the same as the latter, except an additional flag is sent indicating that the expression in question should not be persisted. As such, the results are shown in the variables view, with all the capabilities that allows, but also without the expression following the function as a watch expression would.
|
#
40d79c05 |
|
12-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix type value display in VariablesView. - When retrieving the type to display for a given model node, ask its underlying value node for its corresponding type rather than relying on the one initially stored in the model, as the latter can change as a result of typecasts.
|
#
db1df758 |
|
09-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. SourceLanguage and friends: - Remove ParseTypeExpression from SourceLanguage, as its functionality can now properly be subsumed by the general expression parser, and simply becomes another result type thereof. CLanguageFamily/CLanguage/CppLanguage: - Remove IsModifierValid() hook, as this is all now handled internally in the expression parser. VariablesView: - Refactor to handle typecast requests via expression evaluation. Since this is done asynchronously, rework the logic to handle recognizing expression evaluation results that correspond to a requested cast, and handle accordingly.
|
#
6136e430 |
|
23-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. VariablesView: - Remove unused member variable. - Add optional presentation name field to ModelNode, which allows overriding the name of its underlying ValueNode for display purposes. Used to ensure that a top-level node for an expression always shows the expression string itself, even when the returned result is a value node with a different name.
|
#
06901787 |
|
22-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Further improvements to expression handling. VariablesView: - ModelNode now acquires a reference to its target variable. This is necessary because in the case of expression variables, the model node is ultimately the only one aware of it, and therefore needs to manage its lifetime. - AddSyntheticNode() now discriminates between the case where it needs to create a node child on behalf of the caller versus when it's given an already created one, as is the case when an expression resolves to a value node. Consequently it also detects whether it needs to request value resolution or not, and handles accordingly. - _AddExpressionNode() now supports value node results and handles them accordingly.
|
#
b4a86113 |
|
21-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Adjust VariablesView for new expression API. - Simplify handling of expression nodes. For primitive results, we now construct a Variable object that represents the expression result, and then add that as we would any other local variable. This simplifies handling, and also allows saving/restoration of their view state to be handled the same as other nodes. Complex expression results aren't yet handled properly, pending some further work in progress on the evaluator.
|
#
81c848a1 |
|
14-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Rework expression parsing API. ExpressionInfo: - No longer stores an explicit result type (this is inferred from evaluation of the expression itself now). - Introduce class ExpressionResult for returning the result of an expression computation. This can currently take the form of either a primitive value, or a value node object. - Adjust UserInterfaceListener and ExpressionInfo::Listener to take the above changes into account, and correspondingly adjust all callers/listeners. CLanguageExpressionEvaluator: - Introduce child class Operand. This subsumes the functionality that was previously in the separate Number class, and can represent a primitive value, a value node or a type. Also has functionality to implicity handle type promotion/inferring when performing calculations between operands. - Adjust expression parser to operate in terms of Operands rather than Numbers. This allows a number of improvements, most notably that an expression can now return a value node as a result rather than only a primitive number. This capability isn't yet fully used, but paves the way for future uses such as an expression that evaluates to a data member, a global variable, or an arbitrary pointer of a particular type. - Various cleanups/simplifications that were possible as a result of the above changes. ExpressionEvaluationWindow/ExpressionPromptWindow: - Remove type menu field, since the expression API no longer uses it. Adding/removing expressions in the VariablesView is temporarily disabled, pending some further rework there to properly handle the new result object.
|
#
46593adf |
|
14-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #11459. - When saving our view state, only save a new set of values if a stack frame clear is pending. Otherwise, check if there is a previously existing view state, and take over its values. This ensures that we correctly remember our previous values when the user is simply switching stack frames while in a stopped state.
|
#
743d5dbe |
|
09-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix potential crash. VariablesView: - Check to ensure the stack frame actually does have a function object associated with it before attempting to use it, as this isn't always the case.
|
#
d1c9ffed |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanup. Team: - Remove expression evaluation event / listener hook. This doesn't really belong to the Team anyways. UserInterfaceListener: - ExpressionEvaluationRequested() now takes an ExpressionInfo object rather than the individual subcomponents. ExpressionEvaluationJob: - Notification of expression evaluation completion is now handled via the info object's listener interface rather than the Team. Others: - Adjust all users of expressions to set themselves up as ExpressionInfo::Listener subclasses, and consequently add themselves to the respective info object when requesting evaluation. This significantly simplifies various things, and also ensures that no one accidentally gets notified of an expression they didn't actually ask for, which could occur with the previous Team-based listener interface. Make all other required adjustments for new interface usage. No functional change intended.
|
#
e646545b |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Save/restore expression node values. - This allows expression results to be highlighted for value changes as we already do for regular variable values.
|
#
b7e72db3 |
|
02-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Implement first part of #11387. VariablesView: - The view now keeps a mapping of a list of expressions associated with functions. - Add actions for adding/removing expressions to variables context menu. - When setting up to show a new stack frame, also add corresponding expression nodes and request their evaluation. - Extend VariablesView::Listener interface to also encompass expression evaluation requests. - Don't add context actions for expression nodes. TeamWindow: - Implement VariablesView::Listener expression evaluation hook and forward responses along.
|
#
2a6c54fb |
|
02-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Slight tweak to changed value highlighting. VariablesView::ModelNode: - Only check if a variable's value has changed if we actually have a valid previous value to compare against. Otherwise, e.g. variables that just came into scope but haven't yet been initialized would show up as changed, while their value is, at that point completely uninteresting.
|
#
b6c4fc96 |
|
01-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Implement #9946. TableCellValueRenderer{Utils}: - The rendering calls now take a boolean indicating if the value being rendered differs from its previous state. This is taken into account by rendering it in a different color to indicate the change. Adjust all implementing subclasses accordingly. VariablesView::ModelNode: - Now stores the previous value of the corresponding value node, and can be queried if its value has changed. Used by renderers. VariablesView::_{Add,Apply}ViewStateDescendentInfos(): - When walking the model, also store/restore the values of nodes in the history. In summation of all the above changes, when stepping through a function, we now display values that have changed since the last step, or that have appeared for the first time in a different color.
|
#
473a74f7 |
|
28-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add support for copying variable values. - Implements a simple copy option in the variables context menu that allows one to copy the displayed value to the clipboard.
|
#
e10e7044 |
|
25-Apr-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix crash in context menu builder. A value node might not have a location due to e.g. issues resolving its parent. Guard against this case and simply return early as we won't be able to take any meaningful actions on such a node. Fixes the second crash listed in #10781.
|
#
1ea8fd52 |
|
14-Sep-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add missing std::nothrow.
|
#
20c5fc4a |
|
14-Sep-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add missing std::nothrow.
|
#
a7376ac1 |
|
30-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix remaining flickering for #9841. - Revert hrev45802. However, implement the same essential logic in the TeamWindow itself, and have it guard the StackTraceView, VariablesView, and step control buttons. This fixes flickering in between short steps since it prevents the intermediate clear from happening unnecessarily. - Implement appropriate guards for the interim wait state.
|
#
c2d6b9fa |
|
30-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Reduce flickering in VariablesView. Since the individual _AddNode() invocations notify their node additions, NotifyTableModelReset() isn't really appropriate here after all, since the net effect will be seeing all the nodes getting added, then removed again, then re-added. Also fixes the fact that the variables wouldn't get cleared when picking Run, until we stopped again.
|
#
325f7bb4 |
|
21-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Show correct type in case a typecast has taken place.
|
#
e312ed26 |
|
19-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add "Cast to array" context option. Implements a simple context shortcut allowing to cast a pointer variable directly to a 10-element array of the type it points to. Resolves #9778.
|
#
f297d659 |
|
20-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Relax range setting constraints for arrays. - VariablesView now detects if a container's range is fixed or not, and uses that to adjust both the prompt it displays and whether or not the parsed ranges are bounds checked. - ArrayValueNode now returns the currently user-set range rather than the dimension constraints, since those might not always be accurate.
|
#
d51ab41d |
|
17-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix oversight in set visible range support. Detect the case where we have a pointer to an array type, as seen when typecasting a pointer to an array, and present the set visible range option for these as well.
|
#
c05a041e |
|
17-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add Type column to VariablesView. Resolves #9779.
|
#
5d8c967f |
|
15-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
VariablesView: Switch back to NotifyNodesRemoved().
|
#
ad615809 |
|
15-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
VariablesView: Use Notify{NodesCleared,TableModelReset}().
|
#
9187efd1 |
|
04-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Clean up context menu building. Even if the inspect action is unavailable, continue building the rest of the actions, since they can apply regardless of the value location.
|
#
6a2d6f50 |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix a case where values wouldn't be requested properly. - If a node was already expanded, and we then removed/replaced its children, those wouldn't automatically get their value nodes added. Consequently, value retrieval for them would fail until the parent was collapsed/re-expanded. If we encounter such a model node when receiving a value request, notify the table model so it can construct the value node appropriately.
|
#
7198436c |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix several crash problems in Debugger. - When removing a value node in response to ValueNodeChildrenDeleted, we need to recurse down and ensure that each node's children are likewise notified/removed. Otherwise we end up with deleted child nodes in the node table, which in turn led to potential crashes when either adjusting a node's type and/or its visible array range.
|
#
920576bb |
|
21-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Implement setting visible ranges on containers. - Objects that act as ranged containers now expose a menu option which allows the user to input a comma-separated list of ranges to show. These need not be contiguous, ergo one can show only the first and last elements of an array, or some random set of indices in the middle as well.
|
#
b11fd75b |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix broken ValueNodeChildrenDeleted() behavior. - Due to the way the item list was being iterated, ValueNodeChildrenDeleted() would only actually remove every other child.
|
#
aa366c07 |
|
25-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add an information blurb option to PromptWindow. - PromptWindow now takes a parameter which contains optional informational text to display above the text control. - Adjust callers.
|
#
bbaaaf2e |
|
24-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Improve VariableView's tooltip handling. - Make GetToolTipInfo() sensitive to the column being hovered over. If hovering over the variable name, we display its value location information as before. However, if hovering over the value column, the tooltip now displays the full value of the variable, if available.
|
#
1b74b08f |
|
16-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Save/restore renderer settings in view state.
|
#
41cec3e6 |
|
15-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Remember any applied typecasts in VariableViewState. Preserves and restores typecasts across steps like we already do for node expansion states.
|
#
57245d2b |
|
14-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Slight cosmetic adjustment. If the current node is an address type and has as its only child an array type, use the same approach we do for pointers to objects and hide the intermediate dereference.
|
#
f21f5c7c |
|
13-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix build.
|
#
692d2db5 |
|
13-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Notify user if the we fail to parse the type.
|
#
a4df762f |
|
16-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix #9294. - Fix incorrect order of operations in ValueNodeManager. - Upon receiving a changed notification, VariableTableModel needs to make tree table aware that the previous nodes have been removed.
|
#
2c32e743 |
|
08-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
64-bit fixes.
|
#
13c04a36 |
|
08-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
Adapt VariablesView to use the ValueNodeManager.
|
#
ea788ed9 |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Correction to previous leak fix. - The actual reason the hidden node wasn't being released as expected was that ContainerListener::ModelNodeHidden() added a reference on behalf of its indirect target, while the latter never actually took ownership of said reference.
|
#
f4621a90 |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Don't leak the hidden child if present.
|
#
6be1e373 |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix typecasting in address->compound node case. - In the special case of an address node with a hidden child, we must send notifications for removal of the hidden compound's children rather than for the hidden node itself. Otherwise the base TreeTable's state gets out of sync, leading to a crash when attempting to typecast such a node.
|
#
2a2e3baf |
|
06-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add UI hooks for watchpoints. This gets basic watchpoint support working. Right clicking on a variable and picking Watch now opens a prompt with the inferred address, size and watch type for the user to adjust. Still needs some work to get them to show/be modifiable in the breakpoints tab and to get them to respect architectural restrictions (i.e. on x86 we can realistically only do 2 hardware watchpoints and those are restricted to write watch), at least until we support software emulated watchpoints.
|
#
9b64b5d2 |
|
06-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add TODO note.
|
#
7b74c566 |
|
05-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Cleanup: move expression parsing for types to SourceLanguage.
|
#
9e7a46be |
|
05-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
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*.
|
#
8a4cdf3e |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix handling of notifications. Basic typecasting now works. Still needs a bit of work to properly grok pointer/reference types.
|
#
ba4dad8b |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix child-creation-needs-value nodes. We only want to do a delete/create cycle if the node actually changed. Fixes BMessageValueNode.
|
#
e8cdcede |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Start adding support for typecast support. Not yet complete/working.
|
#
f4b1ddb5 |
|
23-Jul-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Debugger: Coding style: normalize naming, some whitespace fixes * TeamUISettings[Factory] -> TeamUiSettings[Factory] * GUITeamUISettings -> GuiTeamUiSettings * GUISettingsUtils -> GuiSettingsUtils
|
#
3a577974 |
|
18-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
666222d3 |
|
17-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
Resolve register names, print memory piece size information.
|
#
2216ccb7 |
|
17-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
17ef26a9 |
|
15-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
0712121c |
|
15-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
11102e38 |
|
19-Nov-2011 |
Rene Gollent <anevilyak@gmail.com> |
Reworked GUI settings storage. - Simplified things so each window simply records all its settings into a BMessage, which is what ultimately goes into the actual UI settings. - Added settings storage/retrieval to the various sub views of the team window. This means that the column widths/positioning on all views hosting a column list view are now also preserved and restored.
|
#
781a7c36 |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Relocate incorrectly placed call, and guard it as needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42471 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
657d2740 |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Fix indentation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42470 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
efc5edfa |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Rename and make VariableTableModel::_GetTreePath() public so VariablesView can make use of it, and adjust existing callers. * For nodes that need child creation to be deferred until after value resolution succeeds, send a request to the view to restore their view state once child creation is complete. This gets the view state working again for things like BPoints and other complex structures embedded in a BMessage. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
55715512 |
|
19-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
For value nodes with deferred child creation, value loading needs to be requested once the deferred load has been complete, otherwise their values would never be loaded if their parent node was already expanded while stepping through the debugger. There still remains an issue with saving/restoring view state for such nodes though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
977db2b5 |
|
04-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add clarifying comment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42375 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aa069e23 |
|
03-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add a listener hook to notify the parent when model nodes are marked hidden. This allows the variables view to request value/location resolution for those nodes as needed, since it's otherwise unaware of their existence. This is necessary in order to correctly handle nodes which require resolution to happen in order to publish their children, since their value would otherwise never be requested when they're hidden by virtue of being the child of an address node. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002d5e97 |
|
03-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Only mark a compound child hidden if it is in fact the only child present. Interesting side effects otherwise occur in the case where multiple compound children are present, since other areas of the table model depend on the node only being hidden in the single child case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42367 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abacf1bd |
|
27-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Extend ValueNode to be able to indicate that a node needs child creation requests delayed until its location/value have been resolved. Update VariablesView to make use of that flag. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42333 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d70f1ae |
|
19-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Get the variable view state more or less usable again. Still needs some more work to do things like preserve renderer settings and some other details. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42254 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e066cf |
|
16-Dec-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced uses of obsolescent BReference[able] API. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be12bce7 |
|
06-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed GCC2 build, and a warning that should have fired in GCC4 as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33912 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59ea286f |
|
05-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* EnumerationValue -> EnumeratorValue * Since some types don't have names (e.g. pointer types or anonymous structs or unions), each type does now also have a unique ID. The global type cache registers types by ID and by name (if they have one). This fixes clashes of types with empty names. * Completely refactored the code dealing with variable values. Formerly we had Variable and TypeComponentPath to navigate to a component, mapped to a BVariant representing the value. Now we have: * Interface Value with various subclasses (BoolValue, IntegerValue, etc.) to represent a value, with the flexibility for more esoteric values. * A tree of ValueNode+ValueNodeChild objects to represent the components of a variable. On top of each ValueNodeChild sits a ValueNode representing the value of the component, potentially having ValueNodeChild children. This should allow casting a component value, simply by replacing its ValueNode. * Interface ValueHandler and various implementations for the different value types. It is basically a factory for classes allowing to format/display a value. * ValueHandlerRoster -- a registry for ValueHandlers, finding the best one for a given value. * Interface TypeHandler and various implementions for the different type kinds (primitive, compound, address, etc.). It is basically a factory for ValueNodes for that type. * TypeHandlerRoster -- a registry for TypeHandlers, finding the best one for a given type. That's still a bit work in progress. It introduces at least one regression: The VariablesView doesn't save/restore its state anymore. Will take a while until that is added back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33907 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e3a631c0 |
|
15-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced interface UserInterface, which abstracts the user interface code. * Added implementation GraphicalUserInterface for the current GUI. TeamDebugger does no longer know about TeamWindow. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3bb17aa98a0eecf5aafa6a664fbcd18c3cb5cb31 |
|
24-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Minor refactoring. VariablesView: - Factor out setting up a variable edit request into a helper function. Adjust table node invocation accordingly. - Add Edit variable context menu item if appropriate.
|
#
d88d941c90bb26795b81a9bb676abeb1e628df8d |
|
23-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Finish variable edit support. VariablesView: - Intercept table node invocations. If the invocation corresponds to a writable variable, request a corresponding editor and bring up a an edit window for it. - Handle requests from the edit window to write the final updated value of the variable. This implements the last missing piece for ticket #9708, except for an editor for floats.
|
#
6edcd0bf79b8f4fc20158d8345bae7b5d6917940 |
|
17-Jul-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Build fix.
|
#
5b026a2960484d7c862ed8e9142d57b8f71fb797 |
|
13-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Improve variable tooltips. VariablesView: - Tooltips now indicate if there was a problem resolving either the location or the actual value of a given variable, as well as whether or not the variable is editable in its current location.
|
#
299f564e06bc45615f167d81e8a95d5057b444ee |
|
26-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix potential crash in VariablesView. VariableTableModel: - When attempting to retrieve the type for a given node, ensure that it actually has a value node first. This might not necessarily be the case if no appropriate type handler was found.
|
#
d2a6418f63f04178dd2ffe332d169ec8b7593087 |
|
07-Jun-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups, no functional change. - Remove out-of-place accessor to type lookup info on ValueLoader. Instead, adjust CreateChildren() and CreateChildrenInRange() to take a TeamTypeInformation parameter. This can then be used by value nodes that need to be able to look up type information in order to properly publish their children, such as BList and BMessage. Refactor subclasses and callers accordingly
|
#
c3f9f5550d2e175e7515c7a2ef1ec44166739ca2 |
|
16-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Minor visual tweak in VariablesView. - Expression evaluation results are now highlighted as changed when they're first added, since they're immediately of interest, unlike uninitialized variables that're first coming into scope.
|
#
9dcef0489e544e13fc8ce4b92923ebe48b66f861 |
|
15-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. Get rid of ExpressionEvaluationWindow. - When asking to evaluate an expression via the Tools menu, we now bring up a prompt window the same as the one used to add a watch expression. This in turn works exactly the same as the latter, except an additional flag is sent indicating that the expression in question should not be persisted. As such, the results are shown in the variables view, with all the capabilities that allows, but also without the expression following the function as a watch expression would.
|
#
40d79c05877ca364e0d38d74ede4a9025c6aff7c |
|
12-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix type value display in VariablesView. - When retrieving the type to display for a given model node, ask its underlying value node for its corresponding type rather than relying on the one initially stored in the model, as the latter can change as a result of typecasts.
|
#
db1df758b834822fd9006acf6860fd666380014c |
|
09-Dec-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. SourceLanguage and friends: - Remove ParseTypeExpression from SourceLanguage, as its functionality can now properly be subsumed by the general expression parser, and simply becomes another result type thereof. CLanguageFamily/CLanguage/CppLanguage: - Remove IsModifierValid() hook, as this is all now handled internally in the expression parser. VariablesView: - Refactor to handle typecast requests via expression evaluation. Since this is done asynchronously, rework the logic to handle recognizing expression evaluation results that correspond to a requested cast, and handle accordingly.
|
#
6136e4303c7a3c29491b812eca93ac9e0980e6bf |
|
23-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanups. VariablesView: - Remove unused member variable. - Add optional presentation name field to ModelNode, which allows overriding the name of its underlying ValueNode for display purposes. Used to ensure that a top-level node for an expression always shows the expression string itself, even when the returned result is a value node with a different name.
|
#
0690178786125729bcfc3d986f330bf6998870f8 |
|
22-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Further improvements to expression handling. VariablesView: - ModelNode now acquires a reference to its target variable. This is necessary because in the case of expression variables, the model node is ultimately the only one aware of it, and therefore needs to manage its lifetime. - AddSyntheticNode() now discriminates between the case where it needs to create a node child on behalf of the caller versus when it's given an already created one, as is the case when an expression resolves to a value node. Consequently it also detects whether it needs to request value resolution or not, and handles accordingly. - _AddExpressionNode() now supports value node results and handles them accordingly.
|
#
b4a861136b9249eefc78a47528e5f4e515c633c6 |
|
21-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Adjust VariablesView for new expression API. - Simplify handling of expression nodes. For primitive results, we now construct a Variable object that represents the expression result, and then add that as we would any other local variable. This simplifies handling, and also allows saving/restoration of their view state to be handled the same as other nodes. Complex expression results aren't yet handled properly, pending some further work in progress on the evaluator.
|
#
81c848a14a380679a439cccb9e10b60d05bd6fbc |
|
14-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Rework expression parsing API. ExpressionInfo: - No longer stores an explicit result type (this is inferred from evaluation of the expression itself now). - Introduce class ExpressionResult for returning the result of an expression computation. This can currently take the form of either a primitive value, or a value node object. - Adjust UserInterfaceListener and ExpressionInfo::Listener to take the above changes into account, and correspondingly adjust all callers/listeners. CLanguageExpressionEvaluator: - Introduce child class Operand. This subsumes the functionality that was previously in the separate Number class, and can represent a primitive value, a value node or a type. Also has functionality to implicity handle type promotion/inferring when performing calculations between operands. - Adjust expression parser to operate in terms of Operands rather than Numbers. This allows a number of improvements, most notably that an expression can now return a value node as a result rather than only a primitive number. This capability isn't yet fully used, but paves the way for future uses such as an expression that evaluates to a data member, a global variable, or an arbitrary pointer of a particular type. - Various cleanups/simplifications that were possible as a result of the above changes. ExpressionEvaluationWindow/ExpressionPromptWindow: - Remove type menu field, since the expression API no longer uses it. Adding/removing expressions in the VariablesView is temporarily disabled, pending some further rework there to properly handle the new result object.
|
#
46593adfbcf47d7bbd06c59b37dc9e6477efe538 |
|
14-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #11459. - When saving our view state, only save a new set of values if a stack frame clear is pending. Otherwise, check if there is a previously existing view state, and take over its values. This ensures that we correctly remember our previous values when the user is simply switching stack frames while in a stopped state.
|
#
743d5dbeb567358b319f33499ea8da95c47c6de5 |
|
09-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix potential crash. VariablesView: - Check to ensure the stack frame actually does have a function object associated with it before attempting to use it, as this isn't always the case.
|
#
d1c9ffed344208f126f1b8fd446347556c03e976 |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Cleanup. Team: - Remove expression evaluation event / listener hook. This doesn't really belong to the Team anyways. UserInterfaceListener: - ExpressionEvaluationRequested() now takes an ExpressionInfo object rather than the individual subcomponents. ExpressionEvaluationJob: - Notification of expression evaluation completion is now handled via the info object's listener interface rather than the Team. Others: - Adjust all users of expressions to set themselves up as ExpressionInfo::Listener subclasses, and consequently add themselves to the respective info object when requesting evaluation. This significantly simplifies various things, and also ensures that no one accidentally gets notified of an expression they didn't actually ask for, which could occur with the previous Team-based listener interface. Make all other required adjustments for new interface usage. No functional change intended.
|
#
e646545b6094fd589a1068525b81ee4de8daa3ac |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Save/restore expression node values. - This allows expression results to be highlighted for value changes as we already do for regular variable values.
|
#
b7e72db3cc4ff5bb929a83cdf8a47fbd347615ed |
|
02-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Implement first part of #11387. VariablesView: - The view now keeps a mapping of a list of expressions associated with functions. - Add actions for adding/removing expressions to variables context menu. - When setting up to show a new stack frame, also add corresponding expression nodes and request their evaluation. - Extend VariablesView::Listener interface to also encompass expression evaluation requests. - Don't add context actions for expression nodes. TeamWindow: - Implement VariablesView::Listener expression evaluation hook and forward responses along.
|
#
2a6c54fb472a9e6faf7ca979163c9ddb67f4b132 |
|
02-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Slight tweak to changed value highlighting. VariablesView::ModelNode: - Only check if a variable's value has changed if we actually have a valid previous value to compare against. Otherwise, e.g. variables that just came into scope but haven't yet been initialized would show up as changed, while their value is, at that point completely uninteresting.
|
#
b6c4fc962c6b0d6a0f071069fd0e90053e58f135 |
|
01-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Implement #9946. TableCellValueRenderer{Utils}: - The rendering calls now take a boolean indicating if the value being rendered differs from its previous state. This is taken into account by rendering it in a different color to indicate the change. Adjust all implementing subclasses accordingly. VariablesView::ModelNode: - Now stores the previous value of the corresponding value node, and can be queried if its value has changed. Used by renderers. VariablesView::_{Add,Apply}ViewStateDescendentInfos(): - When walking the model, also store/restore the values of nodes in the history. In summation of all the above changes, when stepping through a function, we now display values that have changed since the last step, or that have appeared for the first time in a different color.
|
#
473a74f72e6580b2c7cbe5a3e748cb4916a039f6 |
|
28-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add support for copying variable values. - Implements a simple copy option in the variables context menu that allows one to copy the displayed value to the clipboard.
|
#
e10e704441cb6df01b1e8a4765cac7e8e22a0041 |
|
25-Apr-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix crash in context menu builder. A value node might not have a location due to e.g. issues resolving its parent. Guard against this case and simply return early as we won't be able to take any meaningful actions on such a node. Fixes the second crash listed in #10781.
|
#
1ea8fd5216a6c2c7b48efc1f4f5f774864fc8692 |
|
14-Sep-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add missing std::nothrow.
|
#
20c5fc4aa6dbafde619c385e912d41ea6d847527 |
|
14-Sep-2013 |
Rene Gollent <anevilyak@gmail.com> |
Debugger: Add missing std::nothrow.
|
#
a7376ac17537ebef664373fada57d5d75ac2e818 |
|
30-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix remaining flickering for #9841. - Revert hrev45802. However, implement the same essential logic in the TeamWindow itself, and have it guard the StackTraceView, VariablesView, and step control buttons. This fixes flickering in between short steps since it prevents the intermediate clear from happening unnecessarily. - Implement appropriate guards for the interim wait state.
|
#
c2d6b9fa8ee19bb8a505f294315cc649feed33c7 |
|
30-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Reduce flickering in VariablesView. Since the individual _AddNode() invocations notify their node additions, NotifyTableModelReset() isn't really appropriate here after all, since the net effect will be seeing all the nodes getting added, then removed again, then re-added. Also fixes the fact that the variables wouldn't get cleared when picking Run, until we stopped again.
|
#
325f7bb4ec436d8b39b6352877c60b48d4daf2b4 |
|
21-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Show correct type in case a typecast has taken place.
|
#
e312ed26ef0570a3be4dd3271eebe55dc668929e |
|
19-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add "Cast to array" context option. Implements a simple context shortcut allowing to cast a pointer variable directly to a 10-element array of the type it points to. Resolves #9778.
|
#
f297d6591d97d915526ed09bedc24011369d9d2b |
|
20-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Relax range setting constraints for arrays. - VariablesView now detects if a container's range is fixed or not, and uses that to adjust both the prompt it displays and whether or not the parsed ranges are bounds checked. - ArrayValueNode now returns the currently user-set range rather than the dimension constraints, since those might not always be accurate.
|
#
d51ab41d49c22818ab2701f7aa52c6257369f4ab |
|
17-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix oversight in set visible range support. Detect the case where we have a pointer to an array type, as seen when typecasting a pointer to an array, and present the set visible range option for these as well.
|
#
c05a041eac2efd14e3e77ac1cc0f3e89fe89f4c5 |
|
17-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add Type column to VariablesView. Resolves #9779.
|
#
5d8c967faccd81b7645f67dab943d7a02a29beb4 |
|
15-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
VariablesView: Switch back to NotifyNodesRemoved().
|
#
ad6158096cc2a81e355597469c319b05a27eb7d8 |
|
15-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
VariablesView: Use Notify{NodesCleared,TableModelReset}().
|
#
9187efd1a9be8115b5c57a0b6d045d6a27b19317 |
|
04-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Clean up context menu building. Even if the inspect action is unavailable, continue building the rest of the actions, since they can apply regardless of the value location.
|
#
6a2d6f5062d43a3f5f631c699d3f0a90b0eff8bd |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix a case where values wouldn't be requested properly. - If a node was already expanded, and we then removed/replaced its children, those wouldn't automatically get their value nodes added. Consequently, value retrieval for them would fail until the parent was collapsed/re-expanded. If we encounter such a model node when receiving a value request, notify the table model so it can construct the value node appropriately.
|
#
7198436cc28efa74e16de67ec8cc1068a9856068 |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix several crash problems in Debugger. - When removing a value node in response to ValueNodeChildrenDeleted, we need to recurse down and ensure that each node's children are likewise notified/removed. Otherwise we end up with deleted child nodes in the node table, which in turn led to potential crashes when either adjusting a node's type and/or its visible array range.
|
#
920576bbfe5e1fef889b6ede5d80f93d14466ea4 |
|
21-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Implement setting visible ranges on containers. - Objects that act as ranged containers now expose a menu option which allows the user to input a comma-separated list of ranges to show. These need not be contiguous, ergo one can show only the first and last elements of an array, or some random set of indices in the middle as well.
|
#
b11fd75b4bc0750c848dd0fba782ed6779899a3a |
|
27-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix broken ValueNodeChildrenDeleted() behavior. - Due to the way the item list was being iterated, ValueNodeChildrenDeleted() would only actually remove every other child.
|
#
aa366c07b1f68b27e5d2bee66d33773e8aaa8b0c |
|
25-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add an information blurb option to PromptWindow. - PromptWindow now takes a parameter which contains optional informational text to display above the text control. - Adjust callers.
|
#
bbaaaf2eae7dd43553adfbc5f801c2602eec1d21 |
|
24-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Improve VariableView's tooltip handling. - Make GetToolTipInfo() sensitive to the column being hovered over. If hovering over the variable name, we display its value location information as before. However, if hovering over the value column, the tooltip now displays the full value of the variable, if available.
|
#
1b74b08f755ecb9b477b4cbbf264ccd0156746ad |
|
16-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Save/restore renderer settings in view state.
|
#
41cec3e6d4273471b8cd44704d97f220f5bb0857 |
|
15-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Remember any applied typecasts in VariableViewState. Preserves and restores typecasts across steps like we already do for node expansion states.
|
#
57245d2b73a953fefdcb07cfbfae51fc4eee42ad |
|
14-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Slight cosmetic adjustment. If the current node is an address type and has as its only child an array type, use the same approach we do for pointers to objects and hide the intermediate dereference.
|
#
f21f5c7cee824ee71301887c100ef406a0d12de5 |
|
13-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix build.
|
#
692d2db52a75b4fe2713d0f00479c5e324c8c2a8 |
|
13-Apr-2013 |
Rene Gollent <anevilyak@gmail.com> |
Notify user if the we fail to parse the type.
|
#
a4df762f175895c6b319621b293d8a33d9101714 |
|
16-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix #9294. - Fix incorrect order of operations in ValueNodeManager. - Upon receiving a changed notification, VariableTableModel needs to make tree table aware that the previous nodes have been removed.
|
#
2c32e7436061bec593041522f1419875aaa27660 |
|
08-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
64-bit fixes.
|
#
13c04a36b0f40ffc7c6684ce09b51ce5a8ab596e |
|
08-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
Adapt VariablesView to use the ValueNodeManager.
|
#
ea788ed9cb3a9c5dfef12516c1a6c5f15b08e2ad |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Correction to previous leak fix. - The actual reason the hidden node wasn't being released as expected was that ContainerListener::ModelNodeHidden() added a reference on behalf of its indirect target, while the latter never actually took ownership of said reference.
|
#
f4621a90de482327d3f3d98c6535b1910778b848 |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Don't leak the hidden child if present.
|
#
6be1e373d5e9a35abffab37a82b15a1b10de20e0 |
|
30-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix typecasting in address->compound node case. - In the special case of an address node with a hidden child, we must send notifications for removal of the hidden compound's children rather than for the hidden node itself. Otherwise the base TreeTable's state gets out of sync, leading to a crash when attempting to typecast such a node.
|
#
2a2e3bafa2daaf31ff8be2c7b6782529f63774e3 |
|
06-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add UI hooks for watchpoints. This gets basic watchpoint support working. Right clicking on a variable and picking Watch now opens a prompt with the inferred address, size and watch type for the user to adjust. Still needs some work to get them to show/be modifiable in the breakpoints tab and to get them to respect architectural restrictions (i.e. on x86 we can realistically only do 2 hardware watchpoints and those are restricted to write watch), at least until we support software emulated watchpoints.
|
#
9b64b5d24114743378bd72d9bf150ef514b23b09 |
|
06-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add TODO note.
|
#
7b74c56650d6e8320b3b0de1fea0a13d0359a312 |
|
05-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Cleanup: move expression parsing for types to SourceLanguage.
|
#
9e7a46be2010116155a07fb4b5aa6b627eeb7be2 |
|
05-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
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*.
|
#
8a4cdf3e60da41bfd7fbdf7a754c6f69a6e817a1 |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix handling of notifications. Basic typecasting now works. Still needs a bit of work to properly grok pointer/reference types.
|
#
ba4dad8b4946485e7bf90fc400032abd16c08a62 |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix child-creation-needs-value nodes. We only want to do a delete/create cycle if the node actually changed. Fixes BMessageValueNode.
|
#
e8cdcede0390efb556762e241e2381935baf0532 |
|
04-Nov-2012 |
Rene Gollent <anevilyak@gmail.com> |
Start adding support for typecast support. Not yet complete/working.
|
#
f4b1ddb580a6a390c7b11b66c799de95014c2c29 |
|
23-Jul-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Debugger: Coding style: normalize naming, some whitespace fixes * TeamUISettings[Factory] -> TeamUiSettings[Factory] * GUITeamUISettings -> GuiTeamUiSettings * GUISettingsUtils -> GuiSettingsUtils
|
#
3a5779744ed04ad4dd000e1680e0872b3b99b56e |
|
18-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
666222d3fd5bb1964565da7875df2570a0783673 |
|
17-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
Resolve register names, print memory piece size information.
|
#
2216ccb7e2396a7356edfb5b1c8777fc853937be |
|
17-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
17ef26a9f8319415aa24e54aae6cfdbea1624071 |
|
15-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
0712121cdb6b4dfe51d183615944a0f116447d1d |
|
15-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
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.
|
#
11102e3848bcd78ce9a90478ad6992f966fae5c6 |
|
19-Nov-2011 |
Rene Gollent <anevilyak@gmail.com> |
Reworked GUI settings storage. - Simplified things so each window simply records all its settings into a BMessage, which is what ultimately goes into the actual UI settings. - Added settings storage/retrieval to the various sub views of the team window. This means that the column widths/positioning on all views hosting a column list view are now also preserved and restored.
|
#
781a7c361d819f5f18b39dd6f8775370d81e8415 |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Relocate incorrectly placed call, and guard it as needed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42471 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
657d27403c39666074357f6b1fa0ab993758fbec |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Fix indentation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42470 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
efc5edfaa28d0e693a6e3e6fac72a17cf163a419 |
|
23-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Rename and make VariableTableModel::_GetTreePath() public so VariablesView can make use of it, and adjust existing callers. * For nodes that need child creation to be deferred until after value resolution succeeds, send a request to the view to restore their view state once child creation is complete. This gets the view state working again for things like BPoints and other complex structures embedded in a BMessage. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
55715512617f711f9bbdf68fd1440f84545e4efc |
|
19-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
For value nodes with deferred child creation, value loading needs to be requested once the deferred load has been complete, otherwise their values would never be loaded if their parent node was already expanded while stepping through the debugger. There still remains an issue with saving/restoring view state for such nodes though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
977db2b5956e8fe201ca00a586312e076a98b1cf |
|
04-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add clarifying comment. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42375 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aa069e23fa0e61fe876bbff5c95a9f26e8236f4d |
|
03-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add a listener hook to notify the parent when model nodes are marked hidden. This allows the variables view to request value/location resolution for those nodes as needed, since it's otherwise unaware of their existence. This is necessary in order to correctly handle nodes which require resolution to happen in order to publish their children, since their value would otherwise never be requested when they're hidden by virtue of being the child of an address node. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002d5e97298f6fa8dabc3123ab5a9575133b25a4 |
|
03-Jul-2011 |
Rene Gollent <anevilyak@gmail.com> |
Only mark a compound child hidden if it is in fact the only child present. Interesting side effects otherwise occur in the case where multiple compound children are present, since other areas of the table model depend on the node only being hidden in the single child case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42367 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abacf1bd3b939c79c31cf8fb619e8f1130fc0ceb |
|
27-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Extend ValueNode to be able to indicate that a node needs child creation requests delayed until its location/value have been resolved. Update VariablesView to make use of that flag. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42333 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d70f1ae3e3488258e8982c4c45cff620891364c |
|
19-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Get the variable view state more or less usable again. Still needs some more work to do things like preserve renderer settings and some other details. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42254 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e066cf6d35a86d29396d4e740f9811e506b66c |
|
16-Dec-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced uses of obsolescent BReference[able] API. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be12bce74a98e0d86ad6801578cad5ba0529bed7 |
|
06-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed GCC2 build, and a warning that should have fired in GCC4 as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33912 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59ea286fac914a808edc6989becc77dadff10383 |
|
05-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* EnumerationValue -> EnumeratorValue * Since some types don't have names (e.g. pointer types or anonymous structs or unions), each type does now also have a unique ID. The global type cache registers types by ID and by name (if they have one). This fixes clashes of types with empty names. * Completely refactored the code dealing with variable values. Formerly we had Variable and TypeComponentPath to navigate to a component, mapped to a BVariant representing the value. Now we have: * Interface Value with various subclasses (BoolValue, IntegerValue, etc.) to represent a value, with the flexibility for more esoteric values. * A tree of ValueNode+ValueNodeChild objects to represent the components of a variable. On top of each ValueNodeChild sits a ValueNode representing the value of the component, potentially having ValueNodeChild children. This should allow casting a component value, simply by replacing its ValueNode. * Interface ValueHandler and various implementations for the different value types. It is basically a factory for classes allowing to format/display a value. * ValueHandlerRoster -- a registry for ValueHandlers, finding the best one for a given value. * Interface TypeHandler and various implementions for the different type kinds (primitive, compound, address, etc.). It is basically a factory for ValueNodes for that type. * TypeHandlerRoster -- a registry for TypeHandlers, finding the best one for a given type. That's still a bit work in progress. It introduces at least one regression: The VariablesView doesn't save/restore its state anymore. Will take a while until that is added back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33907 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e3a631c0b48d904a9502dabb157639539484da53 |
|
15-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced interface UserInterface, which abstracts the user interface code. * Added implementation GraphicalUserInterface for the current GUI. TeamDebugger does no longer know about TeamWindow. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|