History log of /haiku/src/apps/debugger/user_interface/gui/team_window/ImageFunctionsView.cpp
Revision Date Author Comments
# 29335bd3 30-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Never automatically resize the columns of the ImageFunctions table.

This table will have thousands of items in every branch, most with
extremely long names, so resizing all its columns to the preferred size
takes an unbelievable number of app_server round-trips to measure text.

For modules with any significant usage of C++, there are going to be
functions with names so long that it will make the table quite
unwiedly to work with, anyway, when columns are automatically resized.

This fixes half of the whole-application hang that happens when changing
between functions in the call stack.


# 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.


# 37248a2f 27-Jun-2015 Rene Gollent <rene@gollent.com>

Debugger: Add address column to functions list.

ImageFunctionsView:
- For function nodes, also display the start address of the function in
question. Makes it somewhat more convenient to determine which function a
function pointer actually refers to.


# 37e0f727 06-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Slight tweak to filtered node expansion logic.

When a filter is active, only expand parent nodes if either a) there is
only one matching parent, or 2) the match actually hit a function
contained in it. This allows the case where the intent of the filter is
to find a particular set of files or subdirectories to be handled more
efficiently.


# 8b98295a 05-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Redo filtering to use new RegExp classes.

ImageFunctionsView's filtering field now allows shell-style glob matches
rather than just simple direct string matches. Implements remaining
part of #7955.


# faa0580b 05-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Optimizations to filter match drawing.

Store the filter match index on the SourcePathComponentNode so we can
retrieve it directly when drawing instead of having to recompute the
position of the match every time.


# 58535f5a 02-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Initial implementation of #9755.

- ImageFunctionsView now contains a text input allowing one to specify a
filter for its contained functions.
- When in filtered mode, the previous flattened view is used rather than
the hierarchical tree.
- The matching portion of the string is highlighted. However, currently
only simple string matches are supported.


# 3938bea1 15-May-2013 Rene Gollent <anevilyak@gmail.com>

Rework source path parsing.

- As we parse the image's function list, we now track the last source
file we encountered. If it's the first time we encounter the current
file, we parse its source path components up front and then simply walk
the parsed list in order to add the function to its appropriate place in
the model, rather than the previous recursive approach. This allows us
to reuse the parsed component list for subsequent functions in the same
source file rather than having to reparse the path on every iteration.

- Refactor GetFunctionPath() to make use of the new
_GetSourcePathComponents() parsing function.

Should further improve the time needed to change the active image.


# 66b86c6a 15-May-2013 Rene Gollent <anevilyak@gmail.com>

ImageFunctionsView: Switch back to NotifyNodesRemoved().


# f3bf3eb0 15-May-2013 Rene Gollent <anevilyak@gmail.com>

Cleanups/optimizations for ImageFunctionsView.

- Get rid of the functions array as we no longer really needed it except
to sift duplicates. The latter function is now done simply by keeping a
set of already seen function addresses, and skipping entries which fall
in said category.

- Use NotifyNodesCleared()/NotifyTableModelReset() as appropriate.

- Remove now-unused sorting functions.

Combined, these changes significantly reduce the overhead of switching
the active image, which was produced observable lag when either choosing
another image in the Images list, or when stepping into/out of a
function resulted in an image change.


# 33134920 09-May-2013 Rene Gollent <anevilyak@gmail.com>

Fix memory leaks introduced in previous commits.


# e1fff3ea 09-May-2013 Rene Gollent <anevilyak@gmail.com>

Build fix.


# a69facf0 08-May-2013 Rene Gollent <anevilyak@gmail.com>

Implement #9756. ImageFunctionsView now builds...

...a source path-based tree of all the image's functions, and
consequently organizes them into a nested hierarchy similar to the
on-disk directory structure in which they were originally found (or at
least, as close as we can get from the DWARF info).


# 73eeef0a 04-May-2013 Rene Gollent <anevilyak@gmail.com>

Change truncation mode for image/function list views.

Since for image/file paths, the most interesting part is generally the
filename at the end, and the initial path information is mostly
redundant, it makes more sense to truncate at the beginning.


# 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.


# 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


# 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


# 37248a2fff67d70242fb2d5defa18bc31585a618 27-Jun-2015 Rene Gollent <rene@gollent.com>

Debugger: Add address column to functions list.

ImageFunctionsView:
- For function nodes, also display the start address of the function in
question. Makes it somewhat more convenient to determine which function a
function pointer actually refers to.


# 37e0f72711931894390cf660f521beff2fa08b10 06-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Slight tweak to filtered node expansion logic.

When a filter is active, only expand parent nodes if either a) there is
only one matching parent, or 2) the match actually hit a function
contained in it. This allows the case where the intent of the filter is
to find a particular set of files or subdirectories to be handled more
efficiently.


# 8b98295a684e3603b5719bc3a27815ee0a47dc79 05-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Redo filtering to use new RegExp classes.

ImageFunctionsView's filtering field now allows shell-style glob matches
rather than just simple direct string matches. Implements remaining
part of #7955.


# faa0580b624ab07d189f21dfd62ffd1ecf428d35 05-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Optimizations to filter match drawing.

Store the filter match index on the SourcePathComponentNode so we can
retrieve it directly when drawing instead of having to recompute the
position of the match every time.


# 58535f5a9a50bd40f7ed1f2e131f35ae8927d46b 02-Jun-2013 Rene Gollent <anevilyak@gmail.com>

Initial implementation of #9755.

- ImageFunctionsView now contains a text input allowing one to specify a
filter for its contained functions.
- When in filtered mode, the previous flattened view is used rather than
the hierarchical tree.
- The matching portion of the string is highlighted. However, currently
only simple string matches are supported.


# 3938bea1dc9300f259ca2a990d0ad6f9adac6418 15-May-2013 Rene Gollent <anevilyak@gmail.com>

Rework source path parsing.

- As we parse the image's function list, we now track the last source
file we encountered. If it's the first time we encounter the current
file, we parse its source path components up front and then simply walk
the parsed list in order to add the function to its appropriate place in
the model, rather than the previous recursive approach. This allows us
to reuse the parsed component list for subsequent functions in the same
source file rather than having to reparse the path on every iteration.

- Refactor GetFunctionPath() to make use of the new
_GetSourcePathComponents() parsing function.

Should further improve the time needed to change the active image.


# 66b86c6aeec08f25c9dc5572093ef96effabcce6 15-May-2013 Rene Gollent <anevilyak@gmail.com>

ImageFunctionsView: Switch back to NotifyNodesRemoved().


# f3bf3eb0d416d8cb6d3808f5cf54b0cb7aa68517 15-May-2013 Rene Gollent <anevilyak@gmail.com>

Cleanups/optimizations for ImageFunctionsView.

- Get rid of the functions array as we no longer really needed it except
to sift duplicates. The latter function is now done simply by keeping a
set of already seen function addresses, and skipping entries which fall
in said category.

- Use NotifyNodesCleared()/NotifyTableModelReset() as appropriate.

- Remove now-unused sorting functions.

Combined, these changes significantly reduce the overhead of switching
the active image, which was produced observable lag when either choosing
another image in the Images list, or when stepping into/out of a
function resulted in an image change.


# 331349203211eb54d6f22202197b73e13088a1ac 09-May-2013 Rene Gollent <anevilyak@gmail.com>

Fix memory leaks introduced in previous commits.


# e1fff3ea3a3c8ebc43b6c0028dd8903eed77e3d5 09-May-2013 Rene Gollent <anevilyak@gmail.com>

Build fix.


# a69facf0517bfcea02258dcc0e17a037158938a1 08-May-2013 Rene Gollent <anevilyak@gmail.com>

Implement #9756. ImageFunctionsView now builds...

...a source path-based tree of all the image's functions, and
consequently organizes them into a nested hierarchy similar to the
on-disk directory structure in which they were originally found (or at
least, as close as we can get from the DWARF info).


# 73eeef0a52f1383c0cc5d0d3370d5ecb9298e29e 04-May-2013 Rene Gollent <anevilyak@gmail.com>

Change truncation mode for image/function list views.

Since for image/file paths, the most interesting part is generally the
filename at the end, and the initial path information is mostly
redundant, it makes more sense to truncate at the beginning.


# 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.


# 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


# 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