Summary: | user-space probe x86 on x86-64 host | ||
---|---|---|---|
Product: | systemtap | Reporter: | Frank Ch. Eigler <fche> |
Component: | translator | Assignee: | Unassigned <systemtap> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Last reconfirmed: |
Description
Frank Ch. Eigler
2008-11-24 15:57:52 UTC
sorry, don't catch it well. I tried simple test on FC9-64 bits. gcc -m32 -o /tmp/test /tmp/test.c /tmp/test& stap -vvve 'probe process("/tmp/test").syscall{}' Everything is OK. And validate_module_elf wasn't be called neither. Could you elaborate it a little or provide some test cases? (In reply to comment #1) > Could you elaborate it a little or provide some test cases? On my fc9 x86-64 machine, I get this. Maybe your 'gcc -m32' doesn't work? [12:03:46] % cat > hello.c int main () { } [12:04:30] % gcc -g -m32 hello.c -o hello [12:04:33] % file hello hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped [12:04:34] % sudo ./stap -e 'probe process("./hello").function("*").call {}' -vwt Pass 1: parsed user script and 47 library script(s) in 160usr/20sys/178real ms. semantic error: ELF machine i?86 (code 3) mismatch with target x86_64 in '/home/fche/Private/DEVEL/DEVEL-systemtap/git/BUILD/hello' semantic error: no match while resolving probe point process("./hello").function("*").call semantic error: no probes found Pass 2: analyzed script: 0 probe(s), 0 function(s), 0 embed(s), 0 global(s) in 0usr/0sys/3real ms. Pass 2: analysis failed. Try again with another '--vp 01' option. It's broken as described by FChE on my x86_64 system, too. powerpc was similarly broken (PR 6946), but I fixed it. Unfortunately, that fix won't work for the x86 problem. Yeah stap -e 'probe process("./hello").function("*").call {}' failed due to mismatched elf. But stap -e 'probe process("./hello").syscall {}' gets rid of the checking elf. (In reply to comment #4) > Yeah > stap -e 'probe process("./hello").function("*").call {}' failed due to > mismatched elf. > > But > stap -e 'probe process("./hello").syscall {}' gets rid of the checking elf. Here's a small clarification of the last example above (the ".syscall" one). That example doesn't check the debuginfo because it doesn't need debuginfo (internally that example uses utrace which doesn't require debuginfo). So, the fact that the .syscall probe doesn't check matching debuginfo is by design. commit 756c946 |