Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Unified Diff: sky/tools/debugger/prompt/prompt.cc

Issue 878283002: Split skydb trace into start_tracing and stop_tracing (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: More better Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sky/tools/skydb » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/tools/debugger/prompt/prompt.cc
diff --git a/sky/tools/debugger/prompt/prompt.cc b/sky/tools/debugger/prompt/prompt.cc
index c53554c1420989e9b17abd73db8e23b72237358f..f46aaeee5626163fef6580a0ade825cb457a1074 100644
--- a/sky/tools/debugger/prompt/prompt.cc
+++ b/sky/tools/debugger/prompt/prompt.cc
@@ -81,9 +81,7 @@ class Prompt : public mojo::ApplicationDelegate,
// FIXME: We should use use a fancier lookup system more like what
// services/http_server/http_server.cc does with AddHandler.
- if (info.path == "/trace")
- ToggleTracing(connection_id);
- else if (info.path == "/reload")
+ if (info.path == "/reload")
Load(connection_id, url_);
else if (info.path == "/inspect")
Inspect(connection_id);
@@ -95,9 +93,12 @@ class Prompt : public mojo::ApplicationDelegate,
StartProfiling(connection_id);
else if (info.path == "/stop_profiling")
StopProfiling(connection_id);
- else {
+ else if (info.path == "/start_tracing")
+ StartTracing(connection_id);
+ else if (info.path == "/stop_tracing")
+ StopTracing(connection_id);
+ else
Help(info.path, connection_id);
- }
}
void OnWebSocketRequest(
@@ -125,9 +126,7 @@ class Prompt : public mojo::ApplicationDelegate,
void Help(std::string path, int connection_id) {
std::string help = base::StringPrintf("Sky Debugger running on port %d\n"
"Supported URLs:\n"
- "/toggle_tracing -- Start/stop tracing\n"
"/reload -- Reload the current page\n"
- "/inspect -- Start inspector server for current page\n"
"/quit -- Quit\n"
"/load -- Load a new URL, url in POST body.\n",
command_port_);
@@ -158,21 +157,29 @@ class Prompt : public mojo::ApplicationDelegate,
debugger_->Shutdown();
}
- void ToggleTracing(int connection_id) {
- bool was_tracing = is_tracing_;
- is_tracing_ = !is_tracing_;
-
- if (was_tracing) {
- tracing_->StopAndFlush();
- trace_collector_->GetTrace(base::Bind(
- &Prompt::OnTraceAvailable, base::Unretained(this), connection_id));
+ void StartTracing(int connection_id) {
+ if (is_tracing_) {
+ Error(connection_id, "Already tracing. Use stop_tracing to stop.\n");
return;
}
+ is_tracing_ = true;
mojo::DataPipe pipe;
tracing_->Start(pipe.producer_handle.Pass(), mojo::String("*"));
trace_collector_.reset(new TraceCollector(pipe.consumer_handle.Pass()));
- Respond(connection_id, "Starting trace (type 'trace' to stop tracing)\n");
+ Respond(connection_id, "Starting trace (type 'stop_tracing' to stop)\n");
+ }
+
+ void StopTracing(int connection_id) {
+ if (!is_tracing_) {
+ Error(connection_id, "Not tracing yet. Use start_tracing to start.\n");
+ return;
+ }
+
+ is_tracing_ = false;
+ tracing_->StopAndFlush();
+ trace_collector_->GetTrace(base::Bind(
+ &Prompt::OnTraceAvailable, base::Unretained(this), connection_id));
}
void OnTraceAvailable(int connection_id, std::string trace) {
« no previous file with comments | « no previous file | sky/tools/skydb » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698