|
From: <sv...@va...> - 2012-07-02 21:13:41
|
florian 2012-07-02 22:13:34 +0100 (Mon, 02 Jul 2012)
New Revision: 12701
Log:
Add command line flag --trace-notabove which I've found handy.
There are 4 cases now:
(1) Neither --trace-notbelow nor --trace-notabove are given
No superblocks are traced (same behaviour as before)
(2) --trace-notbelow=YY is given
Superblocks in interval [YY ... ] are traced. (same behaviour as before)
(3) --trace-notabove=XX is given
Superblocks in interval [0 ... XX] are traced.
(4) Both --trace-notbelow=YY and --trace-notabove=XX are given
Superblocks in the interval [XX..YY] are traced
Modified files:
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_translate.c
trunk/coregrind/pub_core_options.h
Modified: trunk/coregrind/m_translate.c (+1 -0)
===================================================================
--- trunk/coregrind/m_translate.c 2012-07-02 19:47:44 +01:00 (rev 12700)
+++ trunk/coregrind/m_translate.c 2012-07-02 22:13:34 +01:00 (rev 12701)
@@ -1420,6 +1420,7 @@
}
else
if ( (VG_(clo_trace_flags) > 0
+ && VG_(get_bbs_translated)() <= VG_(clo_trace_notabove)
&& VG_(get_bbs_translated)() >= VG_(clo_trace_notbelow) )) {
verbosity = VG_(clo_trace_flags);
}
Modified: trunk/coregrind/m_options.c (+2 -1)
===================================================================
--- trunk/coregrind/m_options.c 2012-07-02 19:47:44 +01:00 (rev 12700)
+++ trunk/coregrind/m_options.c 2012-07-02 22:13:34 +01:00 (rev 12701)
@@ -81,7 +81,8 @@
Char* VG_(clo_fullpath_after)[VG_CLO_MAX_FULLPATH_AFTER];
UChar VG_(clo_trace_flags) = 0; // 00000000b
UChar VG_(clo_profile_flags) = 0; // 00000000b
-Int VG_(clo_trace_notbelow) = 999999999;
+Int VG_(clo_trace_notbelow) = -1; // unspecified
+Int VG_(clo_trace_notabove) = -1; // unspecified
Bool VG_(clo_trace_syscalls) = False;
Bool VG_(clo_trace_signals) = False;
Bool VG_(clo_trace_symtab) = False;
Modified: trunk/coregrind/pub_core_options.h (+3 -1)
===================================================================
--- trunk/coregrind/pub_core_options.h 2012-07-02 19:47:44 +01:00 (rev 12700)
+++ trunk/coregrind/pub_core_options.h 2012-07-02 22:13:34 +01:00 (rev 12701)
@@ -130,8 +130,10 @@
extern UChar VG_(clo_trace_flags);
/* DEBUG: do bb profiling? default: 00000000 ( == NO ) */
extern UChar VG_(clo_profile_flags);
-/* DEBUG: if tracing codegen, be quiet until after this bb ( 0 ) */
+/* DEBUG: if tracing codegen, be quiet until after this bb */
extern Int VG_(clo_trace_notbelow);
+/* DEBUG: if tracing codegen, be quiet after this bb */
+extern Int VG_(clo_trace_notabove);
/* DEBUG: print system calls? default: NO */
extern Bool VG_(clo_trace_syscalls);
/* DEBUG: print signal details? default: NO */
Modified: trunk/coregrind/m_main.c (+22 -1)
===================================================================
--- trunk/coregrind/m_main.c 2012-07-02 19:47:44 +01:00 (rev 12700)
+++ trunk/coregrind/m_main.c 2012-07-02 22:13:34 +01:00 (rev 12701)
@@ -205,6 +205,7 @@
" --trace-flags=<XXXXXXXX> show generated code? (X = 0|1) [00000000]\n"
" --profile-flags=<XXXXXXXX> ditto, but for profiling (X = 0|1) [00000000]\n"
" --trace-notbelow=<number> only show BBs above <number> [999999999]\n"
+" --trace-notabove=<number> only show BBs below <number> [0]\n"
" --trace-syscalls=no|yes show all system calls? [no]\n"
" --trace-signals=no|yes show signal handling details? [no]\n"
" --trace-symtab=no|yes show symbol table details? [no]\n"
@@ -237,7 +238,7 @@
" 0000 0100 show selecting insns\n"
" 0000 0010 show after reg-alloc\n"
" 0000 0001 show final assembly\n"
-" (Nb: you need --trace-notbelow with --trace-flags for full details)\n"
+" (Nb: you need --trace-notbelow and/or --trace-notabove with --trace-flags for full details)\n"
"\n"
" debugging options for Valgrind tools that report errors\n"
" --dump-error=<number> show translation for basic block associated\n"
@@ -686,6 +687,8 @@
else if VG_INT_CLO (arg, "--trace-notbelow", VG_(clo_trace_notbelow)) {}
+ else if VG_INT_CLO (arg, "--trace-notabove", VG_(clo_trace_notabove)) {}
+
else if VG_XACT_CLO(arg, "--gen-suppressions=no",
VG_(clo_gen_suppressions), 0) {}
else if VG_XACT_CLO(arg, "--gen-suppressions=yes",
@@ -720,6 +723,24 @@
if (VG_(clo_verbosity) < 0)
VG_(clo_verbosity) = 0;
+ if (VG_(clo_trace_notbelow) == -1) {
+ if (VG_(clo_trace_notabove) == -1) {
+ /* [] */
+ VG_(clo_trace_notbelow) = 2147483647;
+ VG_(clo_trace_notabove) = 0;
+ } else {
+ /* [0 .. notabove] */
+ VG_(clo_trace_notbelow) = 0;
+ }
+ } else {
+ if (VG_(clo_trace_notabove) == -1) {
+ /* [notbelow .. ] */
+ VG_(clo_trace_notabove) = 2147483647;
+ } else {
+ /* [notbelow .. notabove] */
+ }
+ }
+
VG_(dyn_vgdb_error) = VG_(clo_vgdb_error);
if (VG_(clo_gen_suppressions) > 0 &&
|