diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2009-09-15 17:04:00 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2009-09-15 17:04:00 -0400 |
commit | 2260f4e32eb4c0b4cc95e4bef8ccdc5dc66261af (patch) | |
tree | cc6a7564274025a20faff432146684d2a1f9764f /testsuite/systemtap.examples/process/wait4time.meta | |
parent | 9084f0736c3c53e4210409fb000530fc12c03825 (diff) | |
download | systemtap-steved-2260f4e32eb4c0b4cc95e4bef8ccdc5dc66261af.tar.gz systemtap-steved-2260f4e32eb4c0b4cc95e4bef8ccdc5dc66261af.tar.xz systemtap-steved-2260f4e32eb4c0b4cc95e4bef8ccdc5dc66261af.zip |
PR10642: fix wildcard-driven quadratic explosion of .return $$parms probes
For $variables listed in .return probes, a synthetic probe is being
created, for saving the named variable values at function entry. However,
the probe point for this synthetic probe was copied naively, so that
several problems could occur:
- if the original probe point contained wildcards, then each synthetic one
also did, and was therefore multiply derived later
- if the probe point referred to a multiply instantiated function, the
synthetic one was not directly identified with it (at the dwarf_addr level)
Now the synthetic probe is created more carefully, bypassing any further
derivation/expansion processing steps.
* tapsets.cxx (dwarf_var_expanding_visitor): Change add_probe to
add_call_probe field.
(visit_target_symbol_saved_return): Store only the body of the
synthetic probe.
(dwarf_derived_probe ctor): Create intimately related dwarf_derived_probe
for synthetic probe.
(uprobe_derived_probe ctor): Ditto.
Diffstat (limited to 'testsuite/systemtap.examples/process/wait4time.meta')
0 files changed, 0 insertions, 0 deletions