This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] fix semantic error: no entrypc found using probe .statement(*@file:line) constructs


At the moment, you can't specify

probe module("scsi_mod").statement(*@drivers/scsi/scsi_lib.c:1443)

because the compiler will fail with the above semantic error on the
function scsi_end_bidi_request.  It seems looking through the dwarf that
this function is fully inlined and thus has no entrypc to catalogue.
The solution therefore seems to simply return DWARF_CB_OK when we find
such functions and continue cataloguing all the ones that do actually
have non-inline versions.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

---

diff --git a/tapsets.cxx b/tapsets.cxx
index cdc14d6..1cd3b46 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -3560,8 +3560,8 @@ query_dwarf_func (Dwarf_Die * func, void * arg)
                   if (q->dw.function_entrypc (&entrypc))
                     q->filtered_functions[entrypc] = func;
                   else
-                    throw semantic_error("no entrypc found for function '"
-                                         + q->dw.function_name + "'");
+		    /* this function must be fully inlined, just ignore it */
+		    return DWARF_CB_OK;
                 }
               else if (q->has_statement_num)
                 {



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]