This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug translator/16941] fix listing mode inconsistencies


https://sourceware.org/bugzilla/show_bug.cgi?id=16941

Jonathan Lebon <jlebon at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jistone at redhat dot com

--- Comment #1 from Jonathan Lebon <jlebon at redhat dot com> ---
The jlebon/listing branch now contains all the patches necessary to reduce the
listing_mode.exp testcase to 0 unexpected failures and 1360 expected passes.
The majority of failures were due to the issue mentioned in #5 in comment 0
above. However, some work was also required in various builders which did not
add a well-formed probe point to the derivation chain.

It also includes fixes to the way library probes are handled (see commit
550dc0d). We now always use iterate_over_libraries(), unless the fully resolved
path to the library was given. If no matching libraries are found by
iterate_over_libraries(), only *then* do we try to directly resolve the path
using find_executable(), and if found, warn that it is not a statically needed
library. Finally, if that also fails, we suggest from the list of statically
needed libraries.

The branch also contains a tweak to the way probe points derived from globby
probes act. For example, a globby process probe results in multiple process
probes for each matching binary. However, they are made optional since we only
expect a subset of them to resolve.

We previously overrode the location of the new process probes to make them
optional. This resulted in a contradiction between what was listed and the
final probe location. The change is purely cosmetic, but provides a more
consistent user experience.

Library probes:

$ # BEFORE
$ 
$ stap -l
'process("listing_mode").library("liblisting_mode.*").function("libfoo")'
process("/home/yyz/jlebon/codebase/systemtap/build/testsuite/listing_mode").library("/home/yyz/jlebon/codebase/systemtap/build/testsuite/liblisting_mode.so").function("libfoo")?
$ 
$ # AFTER
$ 
$ stap -l
'process("listing_mode").library("liblisting_mode.*").function("libfoo")'
process("/home/yyz/jlebon/codebase/systemtap/build/testsuite/listing_mode").library("/home/yyz/jlebon/codebase/systemtap/build/testsuite/liblisting_mode.so").function("libfoo")
$ 

The issue was a little less visible for globby process probes, but still
present:

$ # BEFORE
$ 
$ stap -l 'process("fo?").function("foo")'
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
$ stap -l 'process("fo?").function("foo")' -vvv
<...>
  [0]:
        locations[1]:
          [0]:
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")?
  [1]:
        locations[1]:
          [0]:
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
  [2]:
        locations[1]:
          [0]: process("fo?").function("foo")
<...>
$ stap -e 'probe process("fo?").function("foo") { println(pp()); exit() }' -c
./foo
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")?
$ 
$ # AFTER
$ 
$ stap -l 'process("fo?").function("foo")'
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
$ stap -l 'process("fo?").function("foo")' -vvv
<...>
  [0]:
        locations[1]:
          [0]:
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
  [1]:
        locations[1]:
          [0]:
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
  [2]:
        locations[1]:
          [0]:
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
  [3]:
        locations[1]:
          [0]: process("*foo").function("foo")
<...>
$ stap -e 'probe process("fo?").function("foo") { println(pp()); exit() }' -c
./foo
process("/home/yyz/jlebon/codebase/systemtap/systemtap/foo").function("foo")
$

-- 
You are receiving this mail because:
You are the assignee for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]