even if they do not have an explicit probe placed into them.
.TP
.BI \-\-ldd
-Add symbol/unwind information for all shared libraries suspected by
-ldd to be necessary for user-space binaries being probe or listed with
+Add symbol/unwind information for all user-space shared libraries suspected
+by ldd to be necessary for user-space binaries being probe or listed with
the \-d option. Caution: this can make the probe modules considerably
-larger.
+larger. Note that this option does not deal with kernel-space modules:
+see instead \-\-all\-modules below.
.TP
.BI \-\-all\-modules
Equivalent to specifying "\-dkernel" and a "\-d" for each kernel module that is
their parameters and types. A function of type 'unknown' indicates a function
that does not return a value. Note that not all function/parameter types may be
resolved (these are also shown by 'unknown'). This features is very
-memory-intensive and thus may not work properly with \fI--use-server\fR if the
+memory-intensive and thus may not work properly with \fI\-\-use-server\fR if the
target server imposes an rlimit on process memory (i.e. through the
\fI~stap-server/.systemtap/rc\fR configuration file, see \fIstap-server\fR(8)).
driver and/or a remote host. For example, to connect to the local privileged
QEMU driver, use:
.SAMPLE
---remote libvirt://MyDomain/qemu:///system
+\-\-remote libvirt://MyDomain/qemu:///system
.ESAMPLE
See the page at
.nh
}
if (unlikely(m == NULL)) {
- if (module_name)
- _stp_warn ("Missing unwind data for module, rerun with 'stap -d %s'\n",
- module_name);
- // Don't _stp_warn about this, will use fallback unwinder.
+ // some heuristics for the module name; we can't call
+ // kernel_text_address or friends from this context.
+ if (! module_name && (unsigned long)pc > PAGE_OFFSET)
+ module_name = "kernel";
+ _stp_warn ("Missing unwind data for a module, rerun with 'stap -d %s'\n",
+ module_name ?: "(unknown; retry witn -DDEBUG_UNWIND)");
+ // Don't _stp_warn including the pc#, since it'll defeat warning deduplicator
dbug_unwind(1, "No module found for pc=%lx", pc);
return -EINVAL;
}
cout << " " << syms[i].c_str() << endl;
}
cout
- << _F(" --ldd add unwind/symbol data for all referenced object files.\n"
+ << _F(" --ldd add unwind/symbol data for referenced user-space objects.\n"
" --all-modules\n"
" add unwind/symbol data for all loaded kernel objects.\n"
" -t collect probe timing information\n"