aboutsummaryrefslogtreecommitdiff
path: root/pw_trace_tokenized/example
diff options
context:
space:
mode:
Diffstat (limited to 'pw_trace_tokenized/example')
-rw-r--r--pw_trace_tokenized/example/basic.cc3
-rw-r--r--pw_trace_tokenized/example/filter.cc8
-rw-r--r--pw_trace_tokenized/example/linux_group_by_tid.cc7
-rw-r--r--pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h15
-rw-r--r--pw_trace_tokenized/example/rpc.cc33
-rw-r--r--pw_trace_tokenized/example/trigger.cc9
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();