summaryrefslogtreecommitdiffstats
path: root/runtime/debug.h
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-04-13 14:59:36 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-04-13 14:59:36 -0400
commit1ec6761a6b893c2c755753617bebac79b3040fca (patch)
treebd252bb1d5253e1a10ff24b1790e6e0e1b7cec02 /runtime/debug.h
parentbf50bb491c5bfcf3035de45ac58acf11ed02af06 (diff)
parent1c86aa2adc1165906057cdde4cc7484468726fc4 (diff)
downloadsystemtap-steved-1ec6761a6b893c2c755753617bebac79b3040fca.tar.gz
systemtap-steved-1ec6761a6b893c2c755753617bebac79b3040fca.tar.xz
systemtap-steved-1ec6761a6b893c2c755753617bebac79b3040fca.zip
Merge commit 'origin/unwind'
* commit 'origin/unwind': Fixes for 2.6.25 pt_regs changes. Include string.h Change stap to get kernel symbols from debuginfo and reincarnate vim/ directory in this branch to match master Add new define STP_USE_DWARF_UNWINDER which is set based on which archs Remove misleading error message. Support for kernels built with CONFIG_FRAME_POINTER Fix regression. dded _stp_read_address() and changed code to use it. kretprobe trampoline fixes i386 fixes. control.c (_stp_ctl_write_dbug): Insert missing break. 32-bit fixes Cleanup. 2008-03-23 Frank Ch. Eigler <fche@elastic.org> 2008-03-23 Frank Ch. Eigler <fche@elastic.org> 2008-03-21 Eugene Teo <eugeneteo@kernel.sg> add (back) runtime/unwind files * clarify utility of epilogue-type probe aliases in documentation rebased unwind_branch on top of current master
Diffstat (limited to 'runtime/debug.h')
-rw-r--r--runtime/debug.h60
1 files changed, 29 insertions, 31 deletions
diff --git a/runtime/debug.h b/runtime/debug.h
index 8f877ede..9b2fe5c5 100644
--- a/runtime/debug.h
+++ b/runtime/debug.h
@@ -14,6 +14,8 @@
* _dbug() writes to systemtap stderr.
* errk() writes to the system log.
*/
+int _stp_transport_state = 0;
+
#define _dbug(args...) _stp_dbug(__FUNCTION__, __LINE__, args)
#define errk(args...) do { \
@@ -21,46 +23,42 @@
printk(args); \
} while (0)
-#ifdef DEBUG_TRANSPORT
-#undef DEBUG_TRANSPORT
-#define DEBUG_TRANSPORT 1
-#else
-#define DEBUG_TRANSPORT 0
-#endif
+/*
+ * To use these, enable them from the command line when compiling.
+ * For example, "stap -DDEBUG_UNWIND=3"
+ * will activate dbug_unwind() and print messages with level <= 3.
+ */
-#ifdef DEBUG_UNWIND
-#undef DEBUG_UNWIND
-#define DEBUG_UNWIND 2
-#else
-#define DEBUG_UNWIND 0
-#endif
+/* Note: DEBUG_MEM is implemented in alloc.c */
-#ifdef DEBUG_SYMBOLS
-#undef DEBUG_SYMBOLS
-#define DEBUG_SYMBOLS 4
+#ifdef DEBUG_TRANS /* transport */
+/* Note: transport is debugged using printk() */
+#define dbug_trans(level, args...) do { \
+ if ((level) <= DEBUG_TRANS) { \
+ printk("%s:%d ",__FUNCTION__, __LINE__); \
+ printk(args); \
+ } \
+ } while (0)
#else
-#define DEBUG_SYMBOLS 0
+#define dbug_trans(level, args...) ;
#endif
-#define DEBUG_TYPE (DEBUG_TRANSPORT|DEBUG_UNWIND|DEBUG_SYMBOLS)
-
-#if DEBUG_TYPE > 0
-
-#define dbug(type, args...) do { \
- if ((type) & DEBUG_TYPE) \
+#ifdef DEBUG_UNWIND /* stack unwinder */
+#define dbug_unwind(level, args...) do { \
+ if ((level) <= DEBUG_UNWIND) \
_stp_dbug(__FUNCTION__, __LINE__, args); \
} while (0)
+#else
+#define dbug_unwind(level, args...) ;
+#endif
-#define kbug(type, args...) do { \
- if ((type) & DEBUG_TYPE) { \
- printk("%s:%d ",__FUNCTION__, __LINE__); \
- printk(args); \
- } \
+#ifdef DEBUG_SYMBOLS
+#define dbug_sym(level, args...) do { \
+ if ((level) <= DEBUG_SYMBOLS) \
+ _stp_dbug(__FUNCTION__, __LINE__, args); \
} while (0)
-
#else
-#define dbug(type, args...) ;
-#define kbug(type, args...) ;
-#endif /* DEBUG_TYPE > 0 */
+#define dbug_sym(level, args...) ;
+#endif
#endif /* _STP_DEBUG_H_ */