diff options
author | Dave Brolley <brolley@redhat.com> | 2009-03-31 12:21:26 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-03-31 12:21:26 -0400 |
commit | dff5b6a2d7a63b4554d1320c0603dc8757b9c8a7 (patch) | |
tree | cd139bae97c71558ccabdc3f69471d8e6a35049b /tapsets.cxx | |
parent | 8f2b14197e7db279434c5b063b755d1121c137de (diff) | |
parent | c5746f91b1ba8f374b4230e16cb33e1b9206ca2b (diff) | |
download | systemtap-steved-dff5b6a2d7a63b4554d1320c0603dc8757b9c8a7.tar.gz systemtap-steved-dff5b6a2d7a63b4554d1320c0603dc8757b9c8a7.tar.xz systemtap-steved-dff5b6a2d7a63b4554d1320c0603dc8757b9c8a7.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index 690d7e28..50ee563a 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -5806,16 +5806,29 @@ 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) + if ((strcmp (location->components[1]->arg->tok->content.c_str(), + probe_name.c_str()) == 0) + || (dw->name_has_wildcard (location->components[1]->arg->tok->content.c_str()) + && dw->function_name_matches_pattern + (probe_name.c_str(), + location->components[1]->arg->tok->content.c_str()))) + ; + else continue; const token* sv_tok = location->components[1]->arg->tok; location->components[1]->functor = TOK_STATEMENT; location->components[1]->arg = new literal_number((int)probe_arg); location->components[1]->arg->tok = sv_tok; ((literal_map_t&)parameters)[TOK_STATEMENT] = location->components[1]->arg; + dwarf_query q(sess, base, location, *dw, parameters, finished_results); q.has_mark = true; dw->query_modules(&q); + if (sess.listing_mode) + { + finished_results.back()->locations[0]->components[1]->functor = TOK_MARK; + finished_results.back()->locations[0]->components[1]->arg = new literal_string (probe_name.c_str()); + } } return; } |