#
03796a0c |
|
16-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Add Inspector UI controls for edit mode. InspectorWindow: - Add buttons to control edit mode, and helper functions to maintain their state. - Implement listener hook for memory change events, to track when requested memory writes are completed, and update the view accordingly. Together with the previous batch of commits, this implements the first part of #9708.
|
#
76ada671 |
|
22-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Extend MemoryView listener interface. MemoryView::Listener: - Add extra hooks for notifying listener of internal mode changes. Implement accordingly in InspectorWindow.
|
#
5474c672 |
|
03-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Add page protection indicator to inspector. InspectorWindow: - We now display a label indicating if the currently inspected block is writable or not, so the user knows whether it's possible to modify the contents.
|
#
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.
|
#
3ea675fc |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #11430. InspectorWindow: - Inherit from Team::Listener and implement hook for thread state change events. - On thread state change, if the new state is stopped, and we have an active block, release it, and ask to re-inspect. - Factor out helper function for updating the active block. - Always ensure the MemoryView is updated when we change blocks. MemoryView: - Clean up acquisition of target memory block. This ensures that the block data is kept up to date when stepping through code with an inspector window open.
|
#
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.
|
#
fdb2d5d9 |
|
29-Oct-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Adapt expression eval users to async interface. Factor out message constant for expression evaluation completion, as multiple places will be using that. ExpressionEvaluationWindow: - Check for expression match immediately in listener hook, and don't bother dispatching to the message loop in such a case. Simplifies some of the other code. InspectorWindow / WatchPromptWindow: - Rather than attempting to evaluate an expression directly, we now defer to the async interface. Clean up and adjust accordingly. TeamWindow: - Adjust window creation calls due to parameter changes. This leaves only the CLI dump memory command to be adapted.
|
#
b906e10a |
|
25-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix crash in InspectorWindow. - In the case where retrieval of a memory block failed, InspectorWindow didn't handle the notification. Consequently, it never removed itself as a listener from the failed block, nor did it release its reference for it. Consequently, if one attempted to retrieve data from the same block again, walking the listener list would crash due to the already-deleted entry in the list. - The success case had the same problem with regards to not removing its listener, but was masked by virtue of the inspector currently being the only user of the memory block manager, so in the latter case the blocks would be properly released/destroyed and the aforementioned walk would never occur. - Adjust locking a bit to ensure that manipulating the listener list always happens with the team lock held. - Style fixes.
|
#
1b104893 |
|
05-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add listener interface to MemoryView. - When the target address of the memory view changes, an attached listener is now notified. This lets the inspector window's text input keep in sync with the current address when keyboard navigating the memory view.
|
#
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
|
#
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.
|
#
787740e0 |
|
03-Nov-2011 |
Rene Gollent <anevilyak@gmail.com> |
Save and restore the inspector window's frame + mode settings. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43155 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80480954 |
|
18-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add support for byte swapping to the memory inspector. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42238 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21e484ae |
|
16-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Add previous/next block navigation buttons. * Fix a calculation error with respect to the last line of the block. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2acfac81 |
|
15-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Refactored MemoryView to be more flexible ; it can now show a configurable choice of hexadecimal and/or character displays of the memory data, with different digit grouping sizes. Still needs some work but is basically functional. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42204 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
348e6deb |
|
13-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Move expression evaluation to the inspector window. * Actually start rendering the memory data. Still has some drawing glitches when scrolling though, will look into those tomorrow. Also doesn't yet highlight the location which the target address actually points to within the block. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42167 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e3ce16f |
|
09-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Introduce TeamMemoryBlock[Manager]. These provide an interface to raw memory page data of the target team. * Jobs: Add RetrieveMemoryBlockJob which performs a background read of the target team's memory. Used by InspectRequested() to perform the actual work. * TeamDebugger: Added InspectRequested() hooks to allow clients to ask for a memory read to be performed. * Introduce InspectorWindow and MemoryView to form the basis of a memory inspector. As yet these are more or less stubs and not yet hooked in. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42080 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03796a0cefd2568ee7c7eb3f0a0164f7f48cc9b1 |
|
16-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Add Inspector UI controls for edit mode. InspectorWindow: - Add buttons to control edit mode, and helper functions to maintain their state. - Implement listener hook for memory change events, to track when requested memory writes are completed, and update the view accordingly. Together with the previous batch of commits, this implements the first part of #9708.
|
#
76ada671ba3b389dcf1bdf22c140130572e14731 |
|
22-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Extend MemoryView listener interface. MemoryView::Listener: - Add extra hooks for notifying listener of internal mode changes. Implement accordingly in InspectorWindow.
|
#
5474c672709cc0fa65443dea8a35d95ad13c8a98 |
|
03-May-2015 |
Rene Gollent <rene@gollent.com> |
Debugger: Add page protection indicator to inspector. InspectorWindow: - We now display a label indicating if the currently inspected block is writable or not, so the user knows whether it's possible to modify the contents.
|
#
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.
|
#
3ea675fc93a37f4697bc4970f93fa4a951880a82 |
|
08-Nov-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #11430. InspectorWindow: - Inherit from Team::Listener and implement hook for thread state change events. - On thread state change, if the new state is stopped, and we have an active block, release it, and ask to re-inspect. - Factor out helper function for updating the active block. - Always ensure the MemoryView is updated when we change blocks. MemoryView: - Clean up acquisition of target memory block. This ensures that the block data is kept up to date when stepping through code with an inspector window open.
|
#
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.
|
#
fdb2d5d961fed2e838859db047e284795cf5cb30 |
|
29-Oct-2014 |
Rene Gollent <rene@gollent.com> |
Debugger: Adapt expression eval users to async interface. Factor out message constant for expression evaluation completion, as multiple places will be using that. ExpressionEvaluationWindow: - Check for expression match immediately in listener hook, and don't bother dispatching to the message loop in such a case. Simplifies some of the other code. InspectorWindow / WatchPromptWindow: - Rather than attempting to evaluate an expression directly, we now defer to the async interface. Clean up and adjust accordingly. TeamWindow: - Adjust window creation calls due to parameter changes. This leaves only the CLI dump memory command to be adapted.
|
#
b906e10a5d3681c1a23008f85ff01ee30086d439 |
|
25-Jun-2013 |
Rene Gollent <anevilyak@gmail.com> |
Fix crash in InspectorWindow. - In the case where retrieval of a memory block failed, InspectorWindow didn't handle the notification. Consequently, it never removed itself as a listener from the failed block, nor did it release its reference for it. Consequently, if one attempted to retrieve data from the same block again, walking the listener list would crash due to the already-deleted entry in the list. - The success case had the same problem with regards to not removing its listener, but was masked by virtue of the inspector currently being the only user of the memory block manager, so in the latter case the blocks would be properly released/destroyed and the aforementioned walk would never occur. - Adjust locking a bit to ensure that manipulating the listener list always happens with the team lock held. - Style fixes.
|
#
1b104893478023f9d694271b701ca1e25c905322 |
|
05-May-2013 |
Rene Gollent <anevilyak@gmail.com> |
Add listener interface to MemoryView. - When the target address of the memory view changes, an attached listener is now notified. This lets the inspector window's text input keep in sync with the current address when keyboard navigating the memory view.
|
#
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
|
#
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.
|
#
787740e0f9b9fc64b8ecf635e7b667699e5f80ea |
|
03-Nov-2011 |
Rene Gollent <anevilyak@gmail.com> |
Save and restore the inspector window's frame + mode settings. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43155 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80480954e22ab9345c14079a0974e943b63afc58 |
|
18-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add support for byte swapping to the memory inspector. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42238 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21e484aea9033ba164c993650b4c5dc25b43d7aa |
|
16-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Add previous/next block navigation buttons. * Fix a calculation error with respect to the last line of the block. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2acfac81cd0853fb6d6d505e9435f7caba54824e |
|
15-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Refactored MemoryView to be more flexible ; it can now show a configurable choice of hexadecimal and/or character displays of the memory data, with different digit grouping sizes. Still needs some work but is basically functional. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42204 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
348e6deb98ae68c9fbe55de2502fa60f1f9e6f4d |
|
13-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Move expression evaluation to the inspector window. * Actually start rendering the memory data. Still has some drawing glitches when scrolling though, will look into those tomorrow. Also doesn't yet highlight the location which the target address actually points to within the block. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42167 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e3ce16f5ea1cd92ef3d4fdb42a8822bde59d318 |
|
09-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
* Introduce TeamMemoryBlock[Manager]. These provide an interface to raw memory page data of the target team. * Jobs: Add RetrieveMemoryBlockJob which performs a background read of the target team's memory. Used by InspectRequested() to perform the actual work. * TeamDebugger: Added InspectRequested() hooks to allow clients to ask for a memory read to be performed. * Introduce InspectorWindow and MemoryView to form the basis of a memory inspector. As yet these are more or less stubs and not yet hooked in. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42080 a95241bf-73f2-0310-859d-f6bbb57e9c96
|