diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-11-29 14:18:52 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-11-29 14:18:52 -0800 |
commit | db1f56c8449d2ea3d158753fe37bac5a750a2566 (patch) | |
tree | 508a24c522c040498dbe7d60036035f3c4ae440a /html/090trace_browser.cc.html | |
parent | 3670fb87f6d38c9ba4fcbb1eaa6439b4007a194e (diff) | |
download | mu-db1f56c8449d2ea3d158753fe37bac5a750a2566.tar.gz |
2611
Diffstat (limited to 'html/090trace_browser.cc.html')
-rw-r--r-- | html/090trace_browser.cc.html | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/html/090trace_browser.cc.html b/html/090trace_browser.cc.html index 62aa2fbe..3da39a9b 100644 --- a/html/090trace_browser.cc.html +++ b/html/090trace_browser.cc.html @@ -29,6 +29,9 @@ body { font-family: monospace; color: #eeeeee; background-color: #080808; } </head> <body> <pre id='vimCodeElement'> +<span class="Comment">//: A debugging helper that lets you zoom in/out on a trace.</span> + +<span class="Comment">//: browse the trace we just created</span> <span class="Delimiter">:(before "End Primitive Recipe Declarations")</span> _BROWSE_TRACE<span class="Delimiter">,</span> <span class="Delimiter">:(before "End Primitive Recipe Numbers")</span> @@ -43,6 +46,14 @@ case _BROWSE_TRACE: <span class="Delimiter">{</span> <span class="Identifier">break</span><span class="Delimiter">;</span> <span class="Delimiter">}</span> +<span class="Comment">//: browse a trace loaded from a file</span> +<span class="Delimiter">:(after "Commandline Parsing")</span> +if <span class="Delimiter">(</span>argc == <span class="Constant">3</span> && is_equal<span class="Delimiter">(</span>argv[<span class="Constant">1</span>]<span class="Delimiter">,</span> <span class="Constant">"browse-trace"</span><span class="Delimiter">))</span> <span class="Delimiter">{</span> + load_trace<span class="Delimiter">(</span>argv[<span class="Constant">2</span>]<span class="Delimiter">);</span> + start_trace_browser<span class="Delimiter">();</span> + <span class="Identifier">return</span> <span class="Constant">0</span><span class="Delimiter">;</span> +<span class="Delimiter">}</span> + <span class="Delimiter">:(before "End Globals")</span> set<long long int> Visible<span class="Delimiter">;</span> long long int Top_of_screen = <span class="Constant">0</span><span class="Delimiter">;</span> @@ -242,6 +253,25 @@ void render_line<span class="Delimiter">(</span>int screen_row<span class="Delim tb_change_cell<span class="Delimiter">(</span>col<span class="Delimiter">,</span> screen_row<span class="Delimiter">,</span> <span class="Constant">' '</span><span class="Delimiter">,</span> TB_WHITE<span class="Delimiter">,</span> TB_BLACK<span class="Delimiter">);</span> <span class="Delimiter">}</span> <span class="Delimiter">}</span> + +void load_trace<span class="Delimiter">(</span>const char* filename<span class="Delimiter">)</span> <span class="Delimiter">{</span> + ifstream tin<span class="Delimiter">(</span>filename<span class="Delimiter">);</span> + if <span class="Delimiter">(</span>!tin<span class="Delimiter">)</span> <span class="Delimiter">{</span> + cerr << <span class="Constant">"no such file: "</span> << filename << <span class="cSpecial">'\n'</span><span class="Delimiter">;</span> + exit<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">);</span> + <span class="Delimiter">}</span> + Trace_stream = new trace_stream<span class="Delimiter">;</span> + while <span class="Delimiter">(</span>has_data<span class="Delimiter">(</span>tin<span class="Delimiter">))</span> <span class="Delimiter">{</span> + int depth<span class="Delimiter">;</span> + tin >> depth<span class="Delimiter">;</span> + string label<span class="Delimiter">;</span> + tin >> label<span class="Delimiter">;</span> + if <span class="Delimiter">(</span>*--label<span class="Delimiter">.</span>end<span class="Delimiter">()</span> == <span class="Constant">':'</span><span class="Delimiter">)</span> label<span class="Delimiter">.</span>erase<span class="Delimiter">(</span>--label<span class="Delimiter">.</span>end<span class="Delimiter">());</span> + string line<span class="Delimiter">;</span> + getline<span class="Delimiter">(</span>tin<span class="Delimiter">,</span> line<span class="Delimiter">);</span> + Trace_stream<span class="Delimiter">-></span>past_lines<span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>trace_line<span class="Delimiter">(</span>depth<span class="Delimiter">,</span> label<span class="Delimiter">,</span> line<span class="Delimiter">));</span> + <span class="Delimiter">}</span> +<span class="Delimiter">}</span> </pre> </body> </html> |