Title: TotalView
1TotalView
2TotalViewNew Product Introduction
- ReplayEngine
- Until now, debugging always meant running only
forward to (hopefully) reach your problem - But unfortunately, just one step too far often
means having to start over again from the
beginning, and hoping the program behavior will
be the same! - With ReplayEngine, you can simply unstep back
through the program and seek out its cause -
deterministically! - Replay gives you a second chance to see what
happened earlier in your program - and without
starting over.
3TotalViewNew Product Introduction
- ReplayEngine
- Captures full execution history
- Record all external input
- Record other sources of non-determinism
- Replay execution
- Replay the execution along exactly the same
trajectory - Can reset to any point along the path already
taken - Everything is managed by the tool
- The user just chooses where to go
- Back into or over functions, one line, or to the
beginning - There is some overhead
- Lots of clever tricks are used to reduce overhead
- Provides Determinism within a debugging session
4TotalViewNew Product Introduction
- Navigation with ReplayEngine
- - an Intuitive User Interface -
Step forward over functions
Step backward over functions
Step forward into functions
Step backward into functions
Advance forward out of current Function, after
the call
Advance backward out of current Function, to
before the call
Advance forward to selected line
Advance backward to selected line
Advance forward to live session
5TotalViewNew Product Introduction
New Toolbar
No Replay? (or not running)
No Active Buttons!
6TotalViewNew Product Introduction
- ReplayEngine
- Consider the following very difficult program
scenario - A crash occurs that destroys the stack backtrace,
giving no information leading up to the problem - ReplayEngine can be used to work backwards from
the crash, and even to observe the stack recreate
itself, providing the critical information on
where and how the problem began. - The ReplayEngine provides the ability to review
any part of the program execution to see all
variables and function calls, from the beginning
of the run to the current time
7(No Transcript)
8(No Transcript)
9(No Transcript)
10(No Transcript)
11(No Transcript)
12ReplayEngine Scenarios
- Especially useful in scenarios that include
- Any crash that destroys the stack backtrace
- Race conditions with multi-threaded programs
- Server applications responding to network input
- Hard-to-reproduce GUI errors
- Crashes with invalid pointers
- Crashes involving write-after-free errors
- Examining complex functions and subroutines
- Writing past the end of an array
- Errors that depend sensitively on input
- We see these kinds of scenarios in
- Commercial applications
- Technical computing
- Education
- Scientific programming
- Network programming
13TotalView Technologies
- Contato
- Alfredo Leon
- alfredo.leon_at_tecpartner.com.br
- Ariani Félix
- ariani.felix_at_tecpartner.com.br
- Telefones (11)5183-6579
- (11)5183-4066