Ciro Santilli has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/22003 )

Change subject: base: add the FmtStackTrace debug option
......................................................................

base: add the FmtStackTrace debug option

If given, a stack trace is printed after every debug message.

This helps to localize where debug messages are being called from,
which is often the critical information needed to debug certain
problems.

Change-Id: I82b8990c0d286393d5bdab05f718be3e89eadc40
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22003
Reviewed-by: Brandon Potter <brandon.pot...@amd.com>
Reviewed-by: Jason Lowe-Power <ja...@lowepower.com>
Maintainer: Jason Lowe-Power <ja...@lowepower.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/base/SConscript
M src/base/trace.cc
2 files changed, 10 insertions(+), 0 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  Brandon Potter: Looks good to me, but someone else must approve
  kokoro: Regressions pass



diff --git a/src/base/SConscript b/src/base/SConscript
index 548fda7..e2a3215 100644
--- a/src/base/SConscript
+++ b/src/base/SConscript
@@ -112,6 +112,8 @@
 DebugFlag('AnnotateQ', "State machine annotation queue debugging")
 DebugFlag('AnnotateVerbose', "Dump all state machine annotation details")
DebugFlag('FmtFlag', "Show the --debug-flag that enabled each debug message")
+DebugFlag('FmtStackTrace',
+    "Print a stack trace after every debug message")
 DebugFlag('FmtTicksOff', "Don't show tick count on debug messages")
 DebugFlag('GDBAcc', "Remote debugger accesses")
 DebugFlag('GDBExtra', "Dump extra information on reads and writes")
diff --git a/src/base/trace.cc b/src/base/trace.cc
index 6b18787..70d81a1 100644
--- a/src/base/trace.cc
+++ b/src/base/trace.cc
@@ -41,12 +41,15 @@
 #include <sstream>
 #include <string>

+#include "base/atomicio.hh"
 #include "base/debug.hh"
 #include "base/logging.hh"
 #include "base/output.hh"
 #include "base/str.hh"
 #include "debug/FmtFlag.hh"
+#include "debug/FmtStackTrace.hh"
 #include "debug/FmtTicksOff.hh"
+#include "sim/backtrace.hh"

 const std::string &name()
 {
@@ -162,6 +165,11 @@

     stream << message;
     stream.flush();
+
+    if (DTRACE(FmtStackTrace)) {
+        print_backtrace();
+        STATIC_ERR("\n");
+    }
 }

 } // namespace Trace

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/22003
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I82b8990c0d286393d5bdab05f718be3e89eadc40
Gerrit-Change-Number: 22003
Gerrit-PatchSet: 3
Gerrit-Owner: Ciro Santilli <ciro.santi...@arm.com>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Bobby R. Bruce <bbr...@ucdavis.edu>
Gerrit-Reviewer: Brandon Potter <brandon.pot...@amd.com>
Gerrit-Reviewer: Ciro Santilli <ciro.santi...@arm.com>
Gerrit-Reviewer: Gabe Black <gabebl...@google.com>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Jason Lowe-Power <ja...@lowepower.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to