diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-04-24 17:43:57 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-04-24 17:43:57 -0400 |
commit | 7fb2f650af7b6a60fc9073cd215e8173ab2afba6 (patch) | |
tree | f7a1cea15c24bd225ba916750a43abd30cb81161 | |
parent | ef2ac8240b1e6f018c8f335f548f8dbb294ecebf (diff) | |
download | systemtap-steved-7fb2f650af7b6a60fc9073cd215e8173ab2afba6.tar.gz systemtap-steved-7fb2f650af7b6a60fc9073cd215e8173ab2afba6.tar.xz systemtap-steved-7fb2f650af7b6a60fc9073cd215e8173ab2afba6.zip |
PR6454: fix "stap -l" listing of space-laden probe point names
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | main.cxx | 20 |
2 files changed, 19 insertions, 8 deletions
@@ -1,3 +1,10 @@ +2008-04-24 Frank Ch. Eigler <fche@elastic.org> + + PR 6454. + * main.cxx (printscript): Avoid string truncation heuristics, and + also avoid plain probe::printsig. Hold nose and dig down into + raw location lists instead. + 2008-04-24 Will Cohen <wcohen@redhat.com> * aclocal.m4: Regenerated. @@ -140,14 +140,18 @@ printscript(systemtap_session& s, ostream& o) #endif stringstream tmps; - second->printsig (tmps); - string tmp = tmps.str(); - // trim anything other than the "head" of the probe point signature: - // alias1 *CUT* = exp1, exp2 - // probe1 *CUT* /* pc=0xdeadbeef */ /* <- foo */ - string::size_type space_pos = tmp.find(' '); - assert (space_pos != string::npos); - string pp = tmp.substr (0, space_pos); + const probe_alias *a = second->get_alias(); + if (a) + { + assert (a->alias_names.size() >= 1); + a->alias_names[0]->print(tmps); // XXX: [0] is arbitrary; perhaps print all + } + else + { + assert (second->locations.size() >= 1); + second->locations[0]->print(tmps); // XXX: [0] is less arbitrary here, but still ... + } + string pp = tmps.str(); // Now duplicate-eliminate. An alias may have expanded to // several actual derived probe points, but we only want to |