]> sourceware.org Git - systemtap.git/commit
PR25841: support context vars in functions called from process.mark probes
authorFrank Ch. Eigler <fche@redhat.com>
Thu, 7 May 2020 19:11:51 +0000 (15:11 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Thu, 7 May 2020 19:17:46 +0000 (15:17 -0400)
commit54df6ebd7bc5d8f0525fcea70b01c9dc3c231a02
treee00466b44ed3ab46593202f71532c7866a4487ce
parent999a6a9be9adc45a62621f0b54f17ea4e92a474c
PR25841: support context vars in functions called from process.mark probes

Extending the prior work to <sys/sdt.h> markers.  This is tricky
because the sdt derived_probes are built with a sequence of
intermediate copies and an ultimate transform to a process.statement
probe.  So the function-cloning & .mark() context-var replacement is
done early, before the synthetic process.statement builder gets a kick
at cloning/etc.  (And the latter doesn't know about sdt $$provider
etc.)

The oddest change is to deep_copy_visitor::visit_functioncall() which
used to clear the copy's referents[] array, but now we preserve (for
reasons elaborated upon in comments).  This has the potential to
impact all the other probes, but initial testing shows nothing
adverse.  No idea why we didn't do this earlier.

Nuked the unused sdt_query::convert_probe() function, not used since
deprecation of sdt-v1.  And an addendum to the message for commit
00ee19ff030f66: removed some ancient symbol-table-only
probe-resolution code machinery.  We can still probe that way, but the
code doesn't actively try to avoid pulling in debuginfo any more.
NEWS
elaborate.h
man/stapprobes.3stap
staptree.cxx
tapsets.cxx
testsuite/buildok/contextfuns.stp
This page took 0.029053 seconds and 5 git commands to generate.