diff options
Diffstat (limited to 'pw_trace_tokenized/example')
-rw-r--r-- | pw_trace_tokenized/example/basic.cc | 3 | ||||
-rw-r--r-- | pw_trace_tokenized/example/filter.cc | 8 | ||||
-rw-r--r-- | pw_trace_tokenized/example/linux_group_by_tid.cc | 7 | ||||
-rw-r--r-- | pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h | 15 | ||||
-rw-r--r-- | pw_trace_tokenized/example/rpc.cc | 33 | ||||
-rw-r--r-- | pw_trace_tokenized/example/trigger.cc | 9 |
6 files changed, 44 insertions, 31 deletions
diff --git a/pw_trace_tokenized/example/basic.cc b/pw_trace_tokenized/example/basic.cc index a3894e331..c0edae146 100644 --- a/pw_trace_tokenized/example/basic.cc +++ b/pw_trace_tokenized/example/basic.cc @@ -30,6 +30,7 @@ #include "pw_log/log.h" #include "pw_trace/example/sample_app.h" #include "pw_trace_tokenized/example/trace_to_file.h" +#include "pw_trace_tokenized/trace_callback.h" int main(int argc, char** argv) { // Take filename as arg if (argc != 2) { @@ -41,7 +42,7 @@ int main(int argc, char** argv) { // Take filename as arg PW_TRACE_SET_ENABLED(true); // Dump trace data to the file passed in. - pw::trace::TraceToFile trace_to_file(argv[1]); + pw::trace::TraceToFile trace_to_file(pw::trace::GetCallbacks(), argv[1]); PW_LOG_INFO("Running basic trace example...\n"); RunTraceSampleApp(); diff --git a/pw_trace_tokenized/example/filter.cc b/pw_trace_tokenized/example/filter.cc index 8461f560a..a16efb478 100644 --- a/pw_trace_tokenized/example/filter.cc +++ b/pw_trace_tokenized/example/filter.cc @@ -51,14 +51,14 @@ int main(int argc, char** argv) { // Take filename as arg } // Register filter callback - pw::trace::Callbacks::Instance() - .RegisterEventCallback(TraceEventCallback) - .IgnoreError(); // TODO(b/242598609): Handle Status properly + pw::trace::Callbacks& callbacks = pw::trace::GetCallbacks(); + callbacks.RegisterEventCallback(TraceEventCallback) + .IgnoreError(); // TODO: b/242598609 - Handle Status properly PW_TRACE_SET_ENABLED(true); // Start with tracing enabled // Dump trace data to the file passed in. - pw::trace::TraceToFile trace_to_file(argv[1]); + pw::trace::TraceToFile trace_to_file(callbacks, argv[1]); PW_LOG_INFO("Running filter example..."); RunTraceSampleApp(); diff --git a/pw_trace_tokenized/example/linux_group_by_tid.cc b/pw_trace_tokenized/example/linux_group_by_tid.cc index 6c8a204a3..9b7785af6 100644 --- a/pw_trace_tokenized/example/linux_group_by_tid.cc +++ b/pw_trace_tokenized/example/linux_group_by_tid.cc @@ -25,6 +25,8 @@ #include "pw_log/log.h" #include "pw_trace/trace.h" #include "pw_trace_tokenized/example/trace_to_file.h" +#include "pw_trace_tokenized/trace_callback.h" +#include "pw_trace_tokenized/trace_tokenized.h" // Example for annotating trace events with thread id. // The platform annotates instants and duration events with the thread id if the @@ -84,10 +86,11 @@ int main(int argc, char** argv) { PW_TRACE_SET_ENABLED(true); // Dump trace data to the file passed in. - pw::trace::TraceToFile trace_to_file{argv[1]}; + pw::trace::TraceToFile trace_to_file(pw::trace::GetCallbacks(), argv[1]); // Register platform callback - pw::trace::RegisterCallbackWhenCreated{TraceEventCallback}; + pw::trace::RegisterCallbackWhenCreated(pw::trace::GetCallbacks(), + TraceEventCallback); PW_LOG_INFO("Running threaded trace example...\n"); RunThreadedTraceSampleApp(); diff --git a/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h b/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h index c392a3853..97a8bb801 100644 --- a/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h +++ b/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h @@ -27,21 +27,21 @@ namespace trace { class TraceToFile { public: - TraceToFile(const char* file_name) { - Callbacks::Instance() + TraceToFile(Callbacks& callbacks, const char* file_name) + : callbacks_(callbacks) { + callbacks_ .RegisterSink(TraceSinkStartBlock, TraceSinkAddBytes, TraceSinkEndBlock, &out_, &sink_handle_) - .IgnoreError(); // TODO(b/242598609): Handle Status properly + .IgnoreError(); // TODO: b/242598609 - Handle Status properly out_.open(file_name, std::ios::out | std::ios::binary); } ~TraceToFile() { - Callbacks::Instance() - .UnregisterSink(sink_handle_) - .IgnoreError(); // TODO(b/242598609): Handle Status properly + callbacks_.UnregisterSink(sink_handle_) + .IgnoreError(); // TODO: b/242598609 - Handle Status properly out_.close(); } @@ -64,8 +64,9 @@ class TraceToFile { } private: + Callbacks& callbacks_; std::ofstream out_; - CallbacksImpl::SinkHandle sink_handle_; + Callbacks::SinkHandle sink_handle_; }; } // namespace trace diff --git a/pw_trace_tokenized/example/rpc.cc b/pw_trace_tokenized/example/rpc.cc index 5041bc3c2..56e68e812 100644 --- a/pw_trace_tokenized/example/rpc.cc +++ b/pw_trace_tokenized/example/rpc.cc @@ -15,25 +15,32 @@ /* NOTE -To use this example you need to enable nanopb, one option is to set this in -either your out/args.gn or the root .gn: -default_args = { - dir_pw_third_party_nanopb = "<path to nanopb repo>" -} +To use this example you need to enable nanopb. One option is to first install +the nanopb package by running the command: + +pw package install nanopb + +Next add nanopb to your args.gn by running the command + +gn args out + +Then add the following line to that text file: + +dir_pw_third_party_nanopb = getenv("PW_PACKAGE_ROOT") + "/nanopb" BUILD -ninja -C out +ninja -C out \ pw_strict_host_clang_debug/obj/pw_trace_tokenized/bin/trace_tokenized_example_rpc RUN ./out/pw_strict_host_clang_debug/obj/pw_trace_tokenized/bin/trace_tokenized_example_rpc DECODE -python pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py - -s localhost:33000 - -o trace.json - -t - out/pw_strict_host_clang_debug/obj/pw_trace_tokenized/bin/trace_tokenized_example_rpc +python pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py \ + -s localhost:33000 \ + -o trace.json \ + -t \ + out/pw_strict_host_clang_debug/obj/pw_trace_tokenized/bin/trace_tokenized_example_rpc\ pw_trace_tokenized/pw_trace_protos/trace_rpc.proto VIEW @@ -46,12 +53,12 @@ In chrome navigate to chrome://tracing, and load the trace.json file. #include "pw_rpc/server.h" #include "pw_rpc_system_server/rpc_server.h" #include "pw_trace/example/sample_app.h" -#include "pw_trace/trace.h" #include "pw_trace_tokenized/trace_rpc_service_nanopb.h" +#include "pw_trace_tokenized/trace_tokenized.h" namespace { -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); void RpcThread() { pw::rpc::system_server::Init(); diff --git a/pw_trace_tokenized/example/trigger.cc b/pw_trace_tokenized/example/trigger.cc index cc7c3936f..62d4425b5 100644 --- a/pw_trace_tokenized/example/trigger.cc +++ b/pw_trace_tokenized/example/trigger.cc @@ -74,16 +74,17 @@ int main(int argc, char** argv) { // Take filename as arg } // Register trigger callback - pw::trace::Callbacks::Instance() + pw::trace::Callbacks& callbacks = pw::trace::GetCallbacks(); + callbacks .RegisterEventCallback(TraceEventCallback, - pw::trace::CallbacksImpl::kCallOnEveryEvent) - .IgnoreError(); // TODO(b/242598609): Handle Status properly + pw::trace::Callbacks::kCallOnEveryEvent) + .IgnoreError(); // TODO: b/242598609 - Handle Status properly // Ensure tracing is off at start, the trigger will turn it on. PW_TRACE_SET_ENABLED(false); // Dump trace data to the file passed in. - pw::trace::TraceToFile trace_to_file(argv[1]); + pw::trace::TraceToFile trace_to_file(callbacks, argv[1]); PW_LOG_INFO("Running trigger example..."); RunTraceSampleApp(); |