History log of /haiku/src/apps/debugger/user_interface/cli/CommandLineUserInterface.h
Revision Date Author Comments
# 45e0c33d 01-May-2023 Zardshard <0azrune6@zard.anonaddy.com>

Debugger: Make CliContext use BLooper for message passing

This commit replaces the custom implementation of message passing with
BLooper.

This commit does not fully transition the code to the BLooper paradigm.
WaitForEvent still exists, when, ideally, message passing should be
used to notify the waiting class that the results are ready.

Change-Id: Id223b9fc0ac1aa9a5a5aeb4af63da04f2cc7574b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6400
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Rene Gollent <rene@gollent.com>


# 92f36c4a 18-Apr-2023 Zardshard <0azrune6@zard.anonaddy.com>

Debugger: Remove unused function

Change-Id: I92b7260d4b5b7d187ec9ecd9f9f602c317410aa6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6362
Reviewed-by: Rene Gollent <rene@gollent.com>


# 05fc1277 03-Jul-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix team restart request.

UserInterface:
- Add Clone() function to set of required virtuals. This asks the subclass
to create a new instance of its respective type.

{CommandLine,Graphical,Report}UserInterface:
- Implement the above function.

TeamDebugger:
- Add accessor for the currently active UI.

TargetHostInterface:
- Set correct request type when setting up the options for a team restart.
- Ask the TeamDebugger for its user interface and clone it in order to fill
in that aspect of the debug options. This fixes a regression introduced in
commit 880a64, which inadvertently resulted in team restarts no longer
working.


# 2d9d01e2 21-Aug-2015 Rene Gollent <rene@gollent.com>

Debugger: Refactor non-interactive report handling.

- Add dedicated ReportDebugger application class for the case where we're
asked to do nothing more than save a report. Also add a corresponding
UserInterface subclass whose sole purpose is to take those necessary
actions and then exit.
- When the debugger is invoked via the --save-report option, we now start
via the aforementioned report/interface rather than piggybacking on the
CLI.
- Clean up CommandLineUserInterface/CliContext to remove handling for the
report saving option.

Should hopefully resolve #12155.


# 7f77789d 14-Aug-2015 Rene Gollent <rene@gollent.com>

Debugger: Add work notification hook to UserInterface.

UserInterface:
- Add new hook function used to notify the UI that some form of
background work is taking place for informational purposes,
i.e. no interaction required. Implement accordingly in
GraphicalUserInterface.


# 8b9099b1 04-Nov-2014 Rene Gollent <rene@gollent.com>

Debugger: Fix #11411.

CliContext/CommandLineUserInterface:
- Process the debug report event asynchronously. The missing lock that
was fixed in commit 5ac34e5a78305abac4c758a34db9f1e34aee54ed highlighted
a problem in how the CLI was handling the case where it was intended to
exit immediately after saving a report, since it issued the quit request
directly from the report event handler. This resulted in locking issues,
as the team debugger would then attempt to tear itself down, during which
it needs to acquire the team lock. However, that was already being held
by the thread in which the CLI was initiating the quit, resulting in a
deadlock.


# bbf320ec 15-Jun-2014 Rene Gollent <rene@gollent.com>

Debugger: UserInterface enhancements.

Add hook to UserInterface to query if Debugger is currently being run
interactively or not. Add corresponding implementations in
{CommandLine,Graphical}UserInterface.


# d9e97187 10-Jun-2014 Rene Gollent <rene@gollent.com>

Debugger: Add file prompt hook to UserInterface.

In some circumstances, it may be necessary to ask the user to locate a file
from the lower layers. Adds the corresponding hook to UserInterface, and a
stub implementation for CommandLineUserInterface.

Adds full implementation for GraphicalUserInterface.


# dad4ae32 09-Dec-2013 Rene Gollent <rene@gollent.com>

Debugger: Fix race condition.

- For the functionality added to address #10283, we need to wait until we
receive the Team listener's thread state change notification before submitting
the report generation request, else the thread might not actually be stopped
yet when the generator walks the thread list. Should fix some lingering issues
with stack traces sometimes not being returned when using this mode of
operation.


# e8948527 07-Dec-2013 Rene Gollent <rene@gollent.com>

Debugger: Implement #10283.

- When constructing the CLI interface, also pass along the target thread ID
if one was specified.
- If our only reason for starting is to save a report, and we've been given
a specific thread to target, rather than just a team, ensure that the target
thread is in a stopped state prior to saving the report.


# 7024fac2 19-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Clean up _RegisterCommands().

- _RegisterCommand() now accepts a space separated list of names
to register a command by and creates a registration for each.


# 5fe3a57c 23-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Fix handling of automatic debug reports.

- CommandLineUserInterface is now a team listener. Consequently, when asked
to generate a debug report on startup without running the input loop,
it now waits for receipt of the debug report event to terminate.

- Style fixes.


# 6799de31 22-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Add command line option to ask Debugger to save a report.

- When invoked, starts up the CLI such that it bypasses waiting for
input and instead save a crash report of the running team, then exits.
Mainly intended to be used by debug_server.


# d4586180 04-Aug-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Improve "help" command

Given a command name it prints the command's usage.


# 8fe9f8b2 27-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Move more stuff to and extend CliContext

* Move the libedit interface there and provide nicer to use methods.
* Also start adding utility methods for the input loop. It is going to
manage all interactions of the input loop with outside events.
* Fix the "quit" command. The user is now prompted what to do with the
debugged team and the input loop thread avoids reentering the input
loop.


# aacf2782 24-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Switch from readline to libedit


# 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


# a6de32b0 23-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Pull QuitCommand out of CommandLineUserInterface


# d0ef7540 23-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Start to imbue CliContext with life


# 0a592099 21-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Rework CLI setup to no longer create a BApplication

The main thread does now serve the CLI input loop.


# 6d60b554 20-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Some basic work to get the CLI going

There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.


# 20616c59 03-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add stubs for the eventual command line interface.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d9d01e2e849737a184f83779311a04346a5be98 21-Aug-2015 Rene Gollent <rene@gollent.com>

Debugger: Refactor non-interactive report handling.

- Add dedicated ReportDebugger application class for the case where we're
asked to do nothing more than save a report. Also add a corresponding
UserInterface subclass whose sole purpose is to take those necessary
actions and then exit.
- When the debugger is invoked via the --save-report option, we now start
via the aforementioned report/interface rather than piggybacking on the
CLI.
- Clean up CommandLineUserInterface/CliContext to remove handling for the
report saving option.

Should hopefully resolve #12155.


# 7f77789d5b4e4eb34bad204d7a1ebc00b3006db6 14-Aug-2015 Rene Gollent <rene@gollent.com>

Debugger: Add work notification hook to UserInterface.

UserInterface:
- Add new hook function used to notify the UI that some form of
background work is taking place for informational purposes,
i.e. no interaction required. Implement accordingly in
GraphicalUserInterface.


# 8b9099b1b24358076e28f6e3a894e6f39de4cece 04-Nov-2014 Rene Gollent <rene@gollent.com>

Debugger: Fix #11411.

CliContext/CommandLineUserInterface:
- Process the debug report event asynchronously. The missing lock that
was fixed in commit 5ac34e5a78305abac4c758a34db9f1e34aee54ed highlighted
a problem in how the CLI was handling the case where it was intended to
exit immediately after saving a report, since it issued the quit request
directly from the report event handler. This resulted in locking issues,
as the team debugger would then attempt to tear itself down, during which
it needs to acquire the team lock. However, that was already being held
by the thread in which the CLI was initiating the quit, resulting in a
deadlock.


# bbf320ecfeb798edac97b226c92af1487a942428 15-Jun-2014 Rene Gollent <rene@gollent.com>

Debugger: UserInterface enhancements.

Add hook to UserInterface to query if Debugger is currently being run
interactively or not. Add corresponding implementations in
{CommandLine,Graphical}UserInterface.


# d9e97187f53201ae200731a0503448c04acec988 10-Jun-2014 Rene Gollent <rene@gollent.com>

Debugger: Add file prompt hook to UserInterface.

In some circumstances, it may be necessary to ask the user to locate a file
from the lower layers. Adds the corresponding hook to UserInterface, and a
stub implementation for CommandLineUserInterface.

Adds full implementation for GraphicalUserInterface.


# dad4ae32f19e9cf1a55f016a4a7a2635ae392bf9 09-Dec-2013 Rene Gollent <rene@gollent.com>

Debugger: Fix race condition.

- For the functionality added to address #10283, we need to wait until we
receive the Team listener's thread state change notification before submitting
the report generation request, else the thread might not actually be stopped
yet when the generator walks the thread list. Should fix some lingering issues
with stack traces sometimes not being returned when using this mode of
operation.


# e8948527c2f9b499848c0859fdc8534cf763e430 07-Dec-2013 Rene Gollent <rene@gollent.com>

Debugger: Implement #10283.

- When constructing the CLI interface, also pass along the target thread ID
if one was specified.
- If our only reason for starting is to save a report, and we've been given
a specific thread to target, rather than just a team, ensure that the target
thread is in a stopped state prior to saving the report.


# 7024fac2201165285f896cb3e2abaebabe4c8f1d 19-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Clean up _RegisterCommands().

- _RegisterCommand() now accepts a space separated list of names
to register a command by and creates a registration for each.


# 5fe3a57c43cb4d106c1109e042bc9588d67e0c9d 23-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Fix handling of automatic debug reports.

- CommandLineUserInterface is now a team listener. Consequently, when asked
to generate a debug report on startup without running the input loop,
it now waits for receipt of the debug report event to terminate.

- Style fixes.


# 6799de315e5b0bbd65d73435ac886315bcf706b3 22-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Add command line option to ask Debugger to save a report.

- When invoked, starts up the CLI such that it bypasses waiting for
input and instead save a crash report of the running team, then exits.
Mainly intended to be used by debug_server.


# d4586180a674df11cbfbea1cf2ce527bf1ed4117 04-Aug-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Improve "help" command

Given a command name it prints the command's usage.


# 8fe9f8b2d0e3c8f88406f5720a1d2027638c43b6 27-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Move more stuff to and extend CliContext

* Move the libedit interface there and provide nicer to use methods.
* Also start adding utility methods for the input loop. It is going to
manage all interactions of the input loop with outside events.
* Fix the "quit" command. The user is now prompted what to do with the
debugged team and the input loop thread avoids reentering the input
loop.


# aacf2782d8022d7178125948daac67533ef3e473 24-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Switch from readline to libedit


# 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


# a6de32b06c65d62f585d77eb77870f171a5f0e3b 23-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Pull QuitCommand out of CommandLineUserInterface


# d0ef75400b4136bac523bb2f71cd55af2262543a 23-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger CLI: Start to imbue CliContext with life


# 0a592099a94eb3727053c0e2ca571398dff75701 21-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Rework CLI setup to no longer create a BApplication

The main thread does now serve the CLI input loop.


# 6d60b554e6d6cee2a7e73e95b5e06374c9f2e32f 20-Jul-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger: Some basic work to get the CLI going

There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.


# 20616c59c121f5ae49a83d8a7542537c18a08a28 03-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add stubs for the eventual command line interface.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43156 a95241bf-73f2-0310-859d-f6bbb57e9c96