Make ftrace required when asked for
Silent failures suck, and since the default is off, make --enable_ftrace
explode if it can't be enabled.
Change-Id: I2393dd6567605bf26e1d7a8c1cdb0fe5208fc10c
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/ftrace.cc b/aos/ftrace.cc
index 0afbcf5..9806661 100644
--- a/aos/ftrace.cc
+++ b/aos/ftrace.cc
@@ -9,13 +9,17 @@
namespace aos {
+int MaybeCheckOpen(const char *file) {
+ if (!FLAGS_enable_ftrace) return -1;
+ int result = open(file, O_WRONLY);
+ PCHECK(result >= 0) << ": Failed to open " << file;
+ return result;
+}
+
Ftrace::Ftrace()
- : message_fd_(FLAGS_enable_ftrace
- ? open("/sys/kernel/debug/tracing/trace_marker", O_WRONLY)
- : -1),
- on_fd_(FLAGS_enable_ftrace
- ? open("/sys/kernel/debug/tracing/tracing_on", O_WRONLY)
- : -1) {}
+ : message_fd_(MaybeCheckOpen("/sys/kernel/debug/tracing/trace_marker")),
+ on_fd_(MaybeCheckOpen("/sys/kernel/debug/tracing/tracing_on")) {
+}
Ftrace::~Ftrace() {
if (message_fd_ != -1) {