- If a thread was already in a stopped state, but we received
an update that indicated something more specific, it would be
ignored, i.e. changing
from simply being in a debugged state to specifying a debugger
call + message. We now check both state and reason before ignoring
the update. Fixes debug reports not receiving the debugger call
message properly when intercepting an actual crash as opposed to
an app running inside the debugger.
* Use be_control_look->DefaultLabelSpacing() instead of hard-coding 4px.
* Use pre-generated system colors.
* Indicate a pane is revertable by making the font bold instead of
blue. This makes the revertable setting orthogonal with the
selected setting (can be both bold and selected color).
* Raspberry Pi is broken now after
the other recent arm work... needs
more investigation.
* Comment out stage2 header as it
links to headers with c++ code.
Need to verify entry.s can call
c++ code (I think it's mangled to
the assembly or something)
* Fix naming of code entry to match
other arm code.
- 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.
- DebugReportGenerator is now its own BLooper that generates reports asynchronously
instead of in TeamDebugger's message loop.
- If a stack trace isn't yet available, DebugReportGenerator now waits for it to
be generated.
- Extended Team to add a listener event for report generation completing. DebugReportGenerator
now generates such an event when it has finished writing a report.
This is so that it does not get draw flush to the edge of the
list view and there is just a bit of padding between the left
edge and where the text starts. The 4 pixels matches other
places that override the DrawItem() method (like Tracker prefs).
Adjust the spacing of the time zone settings in Time prefs so that
switching between Local time and GMT time won't resize the window
when hiding and showing the current and preview times. This means
that the Time preferences window always stays a constant height
without any tricks needed to adjust it after the fact. Before this
change the Time preferences window would change height depending
on the setting, which while not terrible, was probably not
what the author intended.
As a side note I adjusted the window to use B_USE_DEFAULT_SPACING
instead of hardcoded 5px so that the window spacing will adjust to
font size changes.
- When debug_server is built to use the graphical debugger as its
crash handler, also present the option to save a report instead
of debugging the app. Doesn't work 100% correctly yet though since
the report generator needs to wait for stack traces to be generated
if they aren't yet ready.
- 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.
It has no use, since we don't know its value and the list of colors
might be longer (for example, for ARM currently B_MAX_CPU_COUNT is
only 1). The modula operator later on makes sure we keep within the
bounds of the kColors array anyway.
- The Tools menu now contains an option to save a debug report for the currently
debugged team. For now this report contains the following:
A list of all loaded images, their base address and their size.
A list of all threads active in their team, and their state.
* For each thread that is in a debug or exception state,
a stack trace, and a register dump at the top frame will also be emitted.
Feedback on report format + included details welcome.
For now, when the option is requested, the report is saved to the desktop
with an auto-generated name based on the target team and the current
date/time.
* move template method implementations out of class body, as otherwise
gcc2 bails with internal compiler error - thanks to Christof Lutteroth
for reporting