Commit Graph
26 Commits
Author SHA1 Message Date
Rene Gollent 10ba334855 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.
2016-12-05 18:17:58 -05:00
Rene Gollent a9d53d9e7e Debugger: Fix regression introduced in hrev50534.
FunctionInstance:
- Add new state FUNCTION_SOURCE_SUPPRESSED. This signals that the user
  explicitly forced disassembly to be loaded despite source code being
  available.

LoadSourceCodeJob:
- When forced to disassembly, use the above suppressed state accordingly.

SourceView/TeamWindow/TeamDebugger:
- Adjust to take new state into account as needed.

TeamDebugInfo::GetActiveSourceCode:
- When looking at a function to decide whether to return line information
  based on source or disassembly, first examine the source code state. If
  the source has never been loaded for that function, but we have it available,
  set it on the function at that point. This lazily addresses the fact that
  LoadSourceCodeJob is called on behalf of a specific function, and
  consequently only sets the source code onto that function, and not all others
  present in the same file. This allows us to differentiate between the case
  where a function doesn't have source code available at all, versus a function
  that has simply been forced to disassembly view at this point in time.

The primary symptom of the above issue was that attempting to set a breakpoint
outside of the currently active function, but within the same file would result
in the breakpoints view indicating that the breakpoint was at line 0 rather
than the appropriate line, and breakpoints would also not be drawn in the
source view for such locations.

Thanks to Humdinger for the heads up!
2016-11-22 23:06:09 -05:00
Rene Gollent 4d9388f389 Debugger: Adjustments to syntax highlighter.
SyntaxHighlighter/CLanguageFamilySyntaxHighlighter/SourceView:
- TeamTypeInformation is now passed as a parameter when requesting parsing,
  so highlighters can make use of it to identify types. Adjust callers.

CLanguageFamilySyntaxHighlightInfo:
- Use TeamTypeInformation to check if identifiers map to types, and highlight
  accordingly if they do.
2015-01-01 17:49:02 -05:00
Rene Gollent 0f45a48087 Debugger: Fix #11669.
SourceView:
- When calculating line widths for scrollbar calculation purposes, tabstop
  offsets weren't being correctly taken into account, which would result
  in lines being computed as shorter than they actually were. Depending
  on the content of the file, the horizontal scrollbar would consequently
  be configured improperly in some cases.
2014-12-28 17:20:05 -05:00
Rene Gollent 310e80e0b6 Debugger: SourceView cleanups.
SourceView:
- Now that we need to track the current text drawing position for syntax
  purposes anyways, get rid of the previous inefficient hack to handle
  tabstops, and instead adjust for them on the fly. This both avoids
  quite a bit of string copying/reformatting, and eliminates the need to
  adjust the syntax highlight offsets to compensate for the aforementioned
  reformatting.
- Fix syntax color for string literals.
2014-12-01 23:36:10 -05:00
Rene Gollent 177202d882 Debugger: Use syntax highlight info for source code view.
SourceView:
- Request syntax highlight information when new source file is set.
- Adjust _FormatLine() to also patch raw syntax highlights to match
  up with calculated tabstops.
- Draw strings in pieces corresponding to how they're broken up in
  terms of syntax highlights with colors.
2014-11-29 21:30:48 -05:00
Rene Gollent b13d824927 Debugger: MarkerView tweaks.
- Draw conditional breakpoints in a different color from regular
  ones for easy visual differentiation.
- Right clicking on an existing breakpoint marker now brings up the
  condition editing window.
2014-10-30 20:59:52 -04:00
Rene Gollent 8832917f2c Debugger: SourceView: Fix several drawing bugs.
- MarkerView: If the view was resized, and the newly revealed region was
after the last source line, it wouldn't be redrawn properly.
- TextView: Reset low color for painting the region after the
source.  Otherwise, if either the instruction pointer or a breakpoint
were at the last line of the current source, the empty space after would
be filled in that color rather than the background color.
2013-07-11 07:35:06 -04:00
Rene Gollent 596fe0b6f5 Fix redrawing issue.
If we had a source code change that resulted in a new file that was shorter than
the entire view, the section below the last line wouldn't get repainted properly.
2013-06-30 19:53:36 -04:00
Rene Gollent 4841128535 MarkerView: rework drawing to reduce flicker.
Addresses another part of #9841.
2013-06-30 17:16:56 -04:00
Rene Gollent 97a83952a1 Reduce drawing flicker in SourceView.
Instead of relying on the app_server to handle the background color, do so
ourselves. This allows somewhat more granular control, and helps reduce
flicker on drawing when single stepping.
2013-06-29 11:45:57 -04:00
Rene Gollent 6eb68a0430 Slight tweak to inactive instruction pointer highlight color. 2013-06-23 08:10:10 -04:00
Rene Gollent b1975a590f Implement #9775.
- When possible, SourceView now adds a context menu option to switch
between source and disassembly. If the disassembled code is not yet
available, it is asynchronously requested. Adjusted SourceView::Listener
and implementing subclasses accordingly to make that request feasible.

- Adjust TeamWindow to correctly deal with the possibility of the
function source code being available but not loaded.
2013-06-22 16:01:58 -04:00
Rene Gollent 143fdaf7cf Style fix. 2013-06-21 18:54:54 -04:00
Rene Gollent 77d2c53ce7 Slight tweak to instruction pointer highlight drawing.
- When highlighting lines that match IPs in the current stack trace,
draw those which aren't from the currently selected frame in a lighter
color, so as to make it more clear which is which when multiple calls
are visible at once.
2013-06-19 18:38:20 -04:00
Rene Gollent 7287380095 BreakpointListView/SourceView: ignore hidden breakpoints. 2013-06-15 14:51:19 -04:00
Rene Gollent d1a797e6cd Add context action to open source file to SourceView.
Implements #9776.
2013-05-17 19:59:35 -04:00
Rene Gollent ed6d6081c1 Implement "Set next statement".
Adds a context menu command allowing the user to specify that the active
thread should be set to execute the specified statement next, by
updating its instruction pointer. Implements second part of #9709.

Note that care needs to be taken with this feature for now, as it
doesn't yet sanity check the requested address. Setting the target
to e.g. a statement in an entirely different function is likely to have
unpredictable/unstable effects on the debugged program.
2013-05-16 22:44:37 -04:00
Rene Gollent 42d73abab9 Add "Run to cursor" context action.
- UserInterfaceListener/TeamDebugger: Extend ThreadActionRequested()
  to allow passing a target address. Adjust TeamDebugger's
  implementation accordingly.

- ThreadHandler: The MSG_THREAD_RUN action can now optionally take an
  address parameter to run until. If this is specified, set a temporary
  breakpoint for said address before resuming execution.

- SourceView: On right click, present a context menu showing possible
  actions for the current line if we're currently in a stopped thread.
  For the moment, this only yields the "Run to cursor" action, but
  more will be added in the future.
2013-05-12 16:03:47 -04:00
Rene Gollent c7b441ac1e Cleanup. 2013-05-02 22:08:37 -04:00
Rene Gollent 22dc5f2bcd Add tooltips to breakpoint marker view.
- If the user hovers over a valid breakpoint marker location, emit a
  tooltip message indicating the action that can be taken.
2013-05-02 22:03:03 -04:00
Ingo Weinhold 7483c98dec Debugger (and some friends): 64 bit fixes 2012-08-05 23:58:25 +02:00
Rene Gollent 7a574c6cbd Check that a source file is in fact available before attempting to use it to
generate a clipping name. Fixes #7704.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-16 22:53:55 +00:00
Ingo Weinhold c3e066cf6d Replaced uses of obsolescent BReference[able] API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 13:50:30 +00:00
Philippe Houdoin 98dcc2e8a1 Most useless cosmetic change. Ever.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-07 10:21:19 +00:00
Ingo Weinhold e3a631c0b4 * 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
2009-10-15 09:47:24 +00:00