summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--includes/sys/sdt.h217
-rw-r--r--tapsets.cxx13
2 files changed, 126 insertions, 104 deletions
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
index 3da4ff66..ac24b6fb 100644
--- a/includes/sys/sdt.h
+++ b/includes/sys/sdt.h
@@ -13,180 +13,209 @@
#include <string.h>
#include <sys/types.h>
-#define STAP_PROBE_DATA_(probe,dataop) \
+#define STAP_PROBE_DATA_(probe) \
__asm__ volatile (".section .probes\n" \
"\t.align 8\n" \
"1:\n\t.asciz " #probe "\n" \
"\t.align 4\n" \
"\t.int 0x31425250\n" \
"\t.align 8\n" \
- "\t" #dataop " 1b\n" \
+ "\t.long 1b\n" \
"\t.align 8\n" \
- "\t" #dataop " 2f\n" \
+ "\t.long 2f\n" \
"\t.previous\n")
-#if _LP64
#define STAP_PROBE_DATA(probe) \
- STAP_PROBE_DATA_(#probe,.quad)
+ STAP_PROBE_DATA_(#probe)
+
+/* These baroque macros are used to create a unique label. */
+#define STAP_CONCAT(a,b) a ## b
+#define STAP_LABEL_PREFIX(p) _stapprobe1_ ## p
+/* __COUNTER__ is not present in gcc 4.1 */
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 3
+#define STAP_COUNTER STAP_CONCAT(__,COUNTER__)
#else
-#define STAP_PROBE_DATA(probe) \
- STAP_PROBE_DATA_(#probe,.long)
+#define STAP_COUNTER STAP_CONCAT(__,LINE__)
#endif
+#define STAP_LABEL(a,b) STAP_CONCAT(a,b)
-#define STAP_PROBE_(probe) \
+#define STAP_PROBE_(probe) \
do { \
STAP_PROBE_DATA(probe); \
- __asm__ volatile ("2:\n" \
+ __asm__ volatile ("2:\n" \
"\tnop"); \
} while (0)
-#define STAP_PROBE1_(probe,parm1) \
+/* Taking the address of a local label prevents the containing function
+ from being inlined, which keeps the parameters visible. */
+
+#define STAP_PROBE1_(probe,label,parm1) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 */" :: "X"(arg1)); \
+ "\tnop /* %0 */" : "+rm"(arg1)); \
} while (0)
-#define STAP_PROBE2_(probe,parm1,parm2) \
+#define STAP_PROBE2_(probe,label,parm1,parm2) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 */" :: "X"(arg1), "X"(arg2)); \
+ "\tnop /* %0 %1 */" : "+rm"(arg1), "+rm"(arg2)); \
} while (0)
-#define STAP_PROBE3_(probe,parm1,parm2,parm3) \
+#define STAP_PROBE3_(probe,label,parm1,parm2,parm3) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 */" :: "X"(arg1), "X"(arg2), "X"(arg3)); \
+ "\tnop /* %0 %1 %2 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3)); \
} while (0)
-#define STAP_PROBE4_(probe,parm1,parm2,parm3,parm4) \
+#define STAP_PROBE4_(probe,label,parm1,parm2,parm3,parm4) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4)); \
+ "\tnop /* %0 %1 %2 %3 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4)); \
} while (0)
-#define STAP_PROBE5_(probe,parm1,parm2,parm3,parm4,parm5) \
+#define STAP_PROBE5_(probe,label,parm1,parm2,parm3,parm4,parm5) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5)); \
+ "\tnop /* %0 %1 %2 %3 %4 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5)); \
} while (0)
-#define STAP_PROBE6_(probe,parm1,parm2,parm3,parm4,parm5,parm6) \
+#define STAP_PROBE6_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
- volatile __typeof__((parm6)) arg6 __attribute__ ((unused)) = parm6; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
+ volatile __typeof__((parm6)) arg6 = parm6; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 %5 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6)); \
+ "\tnop /* %0 %1 %2 %3 %4 %5 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6)); \
} while (0)
-#define STAP_PROBE7_(probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \
+#define STAP_PROBE7_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
- volatile __typeof__((parm6)) arg6 __attribute__ ((unused)) = parm6; \
- volatile __typeof__((parm7)) arg7 __attribute__ ((unused)) = parm7; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
+ volatile __typeof__((parm6)) arg6 = parm6; \
+ volatile __typeof__((parm7)) arg7 = parm7; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 %5 %6 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6), "X"(arg7)); \
+ "\tnop /* %0 %1 %2 %3 %4 %5 %6 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7)); \
} while (0)
-#define STAP_PROBE8_(probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \
+#define STAP_PROBE8_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
- volatile __typeof__((parm6)) arg6 __attribute__ ((unused)) = parm6; \
- volatile __typeof__((parm7)) arg7 __attribute__ ((unused)) = parm7; \
- volatile __typeof__((parm8)) arg8 __attribute__ ((unused)) = parm8; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
+ volatile __typeof__((parm6)) arg6 = parm6; \
+ volatile __typeof__((parm7)) arg7 = parm7; \
+ volatile __typeof__((parm8)) arg8 = parm8; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6), "X"(arg7), "X"(arg8)); \
+ "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8)); \
} while (0)
-#define STAP_PROBE9_(probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
+#define STAP_PROBE9_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
- volatile __typeof__((parm6)) arg6 __attribute__ ((unused)) = parm6; \
- volatile __typeof__((parm7)) arg7 __attribute__ ((unused)) = parm7; \
- volatile __typeof__((parm8)) arg8 __attribute__ ((unused)) = parm8; \
- volatile __typeof__((parm9)) arg9 __attribute__ ((unused)) = parm9; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
+ volatile __typeof__((parm6)) arg6 = parm6; \
+ volatile __typeof__((parm7)) arg7 = parm7; \
+ volatile __typeof__((parm8)) arg8 = parm8; \
+ volatile __typeof__((parm9)) arg9 = parm9; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6), "X"(arg7), "X"(arg8), "X"(arg9)); \
+ "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8), "+rm"(arg9)); \
} while (0)
-#define STAP_PROBE10_(probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \
+#define STAP_PROBE10_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \
do { \
- volatile __typeof__((parm1)) arg1 __attribute__ ((unused)) = parm1; \
- volatile __typeof__((parm2)) arg2 __attribute__ ((unused)) = parm2; \
- volatile __typeof__((parm3)) arg3 __attribute__ ((unused)) = parm3; \
- volatile __typeof__((parm4)) arg4 __attribute__ ((unused)) = parm4; \
- volatile __typeof__((parm5)) arg5 __attribute__ ((unused)) = parm5; \
- volatile __typeof__((parm6)) arg6 __attribute__ ((unused)) = parm6; \
- volatile __typeof__((parm7)) arg7 __attribute__ ((unused)) = parm7; \
- volatile __typeof__((parm8)) arg8 __attribute__ ((unused)) = parm8; \
- volatile __typeof__((parm9)) arg9 __attribute__ ((unused)) = parm9; \
- volatile __typeof__((parm10)) arg10 __attribute__ ((unused)) = parm10; \
+ __extension__ static volatile long labelval __attribute__ ((unused)) = (long) &&label; \
+ volatile __typeof__((parm1)) arg1 = parm1; \
+ volatile __typeof__((parm2)) arg2 = parm2; \
+ volatile __typeof__((parm3)) arg3 = parm3; \
+ volatile __typeof__((parm4)) arg4 = parm4; \
+ volatile __typeof__((parm5)) arg5 = parm5; \
+ volatile __typeof__((parm6)) arg6 = parm6; \
+ volatile __typeof__((parm7)) arg7 = parm7; \
+ volatile __typeof__((parm8)) arg8 = parm8; \
+ volatile __typeof__((parm9)) arg9 = parm9; \
+ volatile __typeof__((parm10)) arg10 = parm10; \
STAP_PROBE_DATA(probe); \
+ label: \
__asm__ volatile ("2:\n" \
- "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 */" :: "X"(arg1), "X"(arg2), "X"(arg3), "X"(arg4), "X"(arg5), "X"(arg6), "X"(arg7), "X"(arg8), "X"(arg9), "X"(arg10)); \
+ "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8), "+rm"(arg9), "+rm"(arg10)); \
} while (0)
#define STAP_PROBE(provider,probe) \
STAP_PROBE_(probe)
#define STAP_PROBE1(provider,probe,parm1) \
- STAP_PROBE1_(probe,(parm1))
+ STAP_PROBE1_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1))
#define STAP_PROBE2(provider,probe,parm1,parm2) \
- STAP_PROBE2_(probe,(parm1),(parm2))
+ STAP_PROBE2_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2))
#define STAP_PROBE3(provider,probe,parm1,parm2,parm3) \
- STAP_PROBE3_(probe,(parm1),(parm2),(parm3))
+ STAP_PROBE3_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3))
#define STAP_PROBE4(provider,probe,parm1,parm2,parm3,parm4) \
- STAP_PROBE4_(probe,(parm1),(parm2),(parm3),(parm4))
+ STAP_PROBE4_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4))
#define STAP_PROBE5(provider,probe,parm1,parm2,parm3,parm4,parm5) \
- STAP_PROBE5_(probe,(parm1),(parm2),(parm3),(parm4),(parm5))
+ STAP_PROBE5_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5))
#define STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6) \
- STAP_PROBE6_(probe,(parm1),(parm2),(parm3),(parm4),(parm5),(parm6))
+ STAP_PROBE6_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5),(parm6))
#define STAP_PROBE7(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \
- STAP_PROBE7_(probe,(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7))
+ STAP_PROBE7_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7))
#define STAP_PROBE8(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \
- STAP_PROBE8_(probe,(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8))
+ STAP_PROBE8_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8))
#define STAP_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
- STAP_PROBE9_(probe,(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8),(parm9))
+ STAP_PROBE9_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8),(parm9))
#define STAP_PROBE10(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \
- STAP_PROBE10_(probe,(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8),(parm9),(parm10))
+ STAP_PROBE10_(probe,STAP_LABEL(STAP_LABEL_PREFIX(probe),STAP_COUNTER),(parm1),(parm2),(parm3),(parm4),(parm5),(parm6),(parm7),(parm8),(parm9),(parm10))
#define DTRACE_PROBE(provider,probe) \
STAP_PROBE(provider,probe)
diff --git a/tapsets.cxx b/tapsets.cxx
index e9ade595..bc16d6fa 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -5731,8 +5731,6 @@ dwarf_builder::build(systemtap_session & sess,
Elf* elf = dwfl_module_getelf (dw->module, &bias);
size_t shstrndx;
Elf_Scn *probe_scn = NULL;
- bool probe_found = false;
- bool dynamic = (dwfl_module_relocations (dw->module) == 1);
dwfl_assert ("getshstrndx", elf_getshstrndx (elf, &shstrndx));
GElf_Shdr *shdr = NULL;
@@ -5750,8 +5748,6 @@ dwarf_builder::build(systemtap_session & sess,
break;
}
}
- if (dynamic || sess.listing_mode)
- probe_type = dwarf_no_probes;
if (probe_type == probes_and_dwarf)
{
@@ -5779,9 +5775,7 @@ dwarf_builder::build(systemtap_session & sess,
probe_arg = *((__uint64_t*)((char*)pdata->d_buf + probe_scn_offset));
if (probe_scn_offset % (sizeof(__uint64_t)*2))
probe_scn_offset = (probe_scn_offset + sizeof(__uint64_t)*2) - (probe_scn_offset % (sizeof(__uint64_t)*2));
- if (strcmp (location->components[1]->arg->tok->content.c_str(), probe_name.c_str()) == 0)
- probe_found = true;
- else
+ if (strcmp (location->components[1]->arg->tok->content.c_str(), probe_name.c_str()) != 0)
continue;
const token* sv_tok = location->components[1]->arg->tok;
location->components[1]->functor = TOK_STATEMENT;
@@ -5791,11 +5785,10 @@ dwarf_builder::build(systemtap_session & sess,
dwarf_query q(sess, base, location, *dw, parameters, finished_results);
dw->query_modules(&q);
}
- if (probe_found)
- return;
+ return;
}
- if (probe_type == dwarf_no_probes || ! probe_found)
+ if (probe_type == dwarf_no_probes)
{
location->components[1]->functor = TOK_FUNCTION;
location->components[1]->arg = new literal_string("*");