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 runtime/17362] New: no script-level local variables available in F20's kernel.function("do_execve")


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

            Bug ID: 17362
           Summary: no script-level local variables available in F20's
                    kernel.function("do_execve")
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: runtime
          Assignee: systemtap at sourceware dot org
          Reporter: mcermak at redhat dot com

No script-level local variables available in F20's
kernel.function("do_execve"). This changed between 3.13.9-200.fc20 and
3.15.10-201.fc20:

# uname -r; rpm -q systemtap
3.13.9-200.fc20.x86_64
systemtap-2.7-1.mcermak.e454243.fc20.x86_64
# stap -L 'kernel.function("do_execve")'
kernel.function("do_execve@fs/exec.c:1575") $filename:char const* $__argv:char
const* const* $__envp:char const* const*
#
# stap -e 'probe kernel.function("do_execve"){log(user_string($__argv[0]))}' -c
/bin/true
/bin/true
#

# uname -r; rpm -q systemtap
3.15.10-201.fc20.x86_64
systemtap-2.7-1.mcermak.e454243.fc20.x86_64
# stap -L 'kernel.function("do_execve")'
kernel.function("do_execve@fs/exec.c:1547")
#
# stap -e 'probe kernel.function("do_execve"){log(user_string($__argv[0]))}' -c
/bin/true
semantic error: failed to retrieve location attribute for '__argv' [man
error::dwarf]: identifier '$__argv' at <input>:1:52
        dieoffset: 0x186983f from unknown debug file for kernel
        function: do_execve at fs/exec.c:1553 inlined by SYSC_execve at
fs/exec.c:1607 inlined by SyS_execve at fs/exec.c:1602
        source: probe
kernel.function("do_execve"){log(user_string($__argv[0]))}
                                                                   ^

Pass 2: analysis failed.  [man error::pass2]
#


The function declaration didn't change significantly:
=====
# grep -A 8 '^int do_execve'
/usr/src/debug/kernel-3.13.fc20/linux-3.13.9-200.fc20.x86_64/fs/exec.c
int do_execve(const char *filename,
        const char __user *const __user *__argv,
        const char __user *const __user *__envp)
{
        struct user_arg_ptr argv = { .ptr.native = __argv };
        struct user_arg_ptr envp = { .ptr.native = __envp };
        return do_execve_common(filename, argv, envp);
}

# grep -A 8 '^int do_execve'
/usr/src/debug/kernel-3.15.fc20/linux-3.15.10-201.fc20.x86_64/fs/exec.c
int do_execve(struct filename *filename,
        const char __user *const __user *__argv,
        const char __user *const __user *__envp)
{
        struct user_arg_ptr argv = { .ptr.native = __argv };
        struct user_arg_ptr envp = { .ptr.native = __envp };
        return do_execve_common(filename, argv, envp);
}
#
=====

This breaks systemtap.base/pointer_array.exp testcase on newer f20 kernels.

-- 
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]