systemtap/systemtap-2.0-dyninst-fixes...

47 lines
1.6 KiB
Diff

commit b057e43ca01471715901d41448f303080d6a6ba0
Author: Josh Stone <jistone@redhat.com>
Date: Fri Nov 16 13:48:26 2012 -0800
stapdyn: Backport fixes for dyninst 8.0
Applying these two changes back to systemtap 2.0:
commit 744aac4dc3e066dcd92f31d7d89a47a7de65def8
stapdyn: Remove the 8-arg register workaround
commit 7ff8e006809c1544ec61658c21da3795a4212041
stapdyn: loadLibrary now returns BPatch_object
diff --git a/stapdyn/stapdyn.cxx b/stapdyn/stapdyn.cxx
index 8e84ee9..ca73dde 100644
--- a/stapdyn/stapdyn.cxx
+++ b/stapdyn/stapdyn.cxx
@@ -190,10 +190,6 @@ get_dwarf_registers(BPatch_process *app,
// O(m*n) loop, but neither array is very large
for (const char* const* name = names; *name; ++name)
{
- // XXX Dyninst is currently limited in how many individual function
- // arguments it can pass, so we'll have to cut this short...
- if (registers.size() > 8) break;
-
size_t i;
for (i = 0; i < bpregs.size(); ++i)
if (bpregs[i].name() == *name)
@@ -588,14 +584,13 @@ main(int argc, char * const argv[])
// Load the stap module into the target process.
g_child_process = app;
- BPatch_module* stap_mod = app->loadLibrary(module);
- if (!app)
+ g_stap_dso = app->loadLibrary(module);
+ if (!g_stap_dso)
{
staperror() << "Couldn't load " << module
<< " into the target process" << endl;
return 1;
}
- g_stap_dso = stap_mod->getObject();
// Find and instrument uprobes in the target
if ((rc = find_uprobes(dlmodule, g_targets)))