/
usr
/
share
/
systemtap
/
tapset
/
/usr/share/systemtap/tapset
mkdir
upload
Name
Size
Mode
Actions
arm/
-
0755
rm
arm64/
-
0755
rm
bpf/
-
0755
rm
dyninst/
-
0755
rm
i386/
-
0755
rm
ia64/
-
0755
rm
linux/
-
0755
rm
mips/
-
0755
rm
powerpc/
-
0755
rm
riscv/
-
0755
rm
s390/
-
0755
rm
x86_64/
-
0755
rm
ansi.stp
4178
0644
edit
dl
rm
argv.stp
2721
0644
edit
dl
rm
choose_defined.stpm
208
0644
edit
dl
rm
container_of.stpm
235
0644
edit
dl
rm
context.stp
6103
0644
edit
dl
rm
errno.stp
9118
0644
edit
dl
rm
floatingpoint.stp
6936
0644
edit
dl
rm
indent-default.stp
59
0644
edit
dl
rm
indent.stp
4590
0644
edit
dl
rm
init.stp
269
0644
edit
dl
rm
input.stp
263
0644
edit
dl
rm
java.stp
1346
0644
edit
dl
rm
libperl5.26.3-64.stp
1339
0644
edit
dl
rm
libpython2.7-64.stp
522
0644
edit
dl
rm
livepatch.stp
3006
0644
edit
dl
rm
logging.stp
4132
0644
edit
dl
rm
macros.stpm
562
0644
edit
dl
rm
null.stp
17
0644
edit
dl
rm
offsetof.stpm
183
0644
edit
dl
rm
oneshot.stp
38
0644
edit
dl
rm
pn.stp
1588
0644
edit
dl
rm
print_stats.stpm
1719
0644
edit
dl
rm
private30.stpm
80
0644
edit
dl
rm
prometheus.stp
129
0644
edit
dl
rm
prometheus.stpm
8380
0644
edit
dl
rm
python.stp
474
0644
edit
dl
rm
python2.stp
29435
0644
edit
dl
rm
python3.stp
36655
0644
edit
dl
rm
queue_stats.stp
9487
0644
edit
dl
rm
random.stp
432
0644
edit
dl
rm
README
371
0644
edit
dl
rm
regex.stp
4107
0644
edit
dl
rm
registers.stp
11081
0644
edit
dl
rm
sizeof.stpm
212
0644
edit
dl
rm
speculative.stp
1746
0644
edit
dl
rm
sreg_arch.stpm
263
0644
edit
dl
rm
stap_staticmarkers.stp
9670
0644
edit
dl
rm
stopwatch.stp
3063
0644
edit
dl
rm
string.stp
7514
0644
edit
dl
rm
switchfile.stp
612
0644
edit
dl
rm
system.stp
593
0644
edit
dl
rm
this.stp
160
0644
edit
dl
rm
timers.stp
924
0644
edit
dl
rm
tls.stp
8099
0644
edit
dl
rm
tokenize.stp
2124
0644
edit
dl
rm
try_assign.stpm
768
0644
edit
dl
rm
type_defined.stpm
374
0644
edit
dl
rm
tzinfo.stp
930
0644
edit
dl
rm
uconversions-guru.stp
6078
0644
edit
dl
rm
uconversions.stp
36640
0644
edit
dl
rm
Edit:
/usr/share/systemtap/tapset/registers.stp
(11081B)
/* This is a stub tapset documenting a number of * architecture-dependent functions. For actual implementation of the * functions, see tapset/ARCH/registers.stp. */ /* <tapsetdescription> * The functions in this tapset can be used to access information * from the context at the time a probe point was hit. This includes * functions to access named CPU registers, and functions that provide * the values of a probed function's arguments. (The latter can be * called when you have hit a probe point at the entry to a function, * and are useful when the code you are probing was built without debugging * information.) * * Function arguments are referred to by number, starting at 1. * On 32-bit architectures * (and when probing 32-bit applications on 64-bit architectures) * a 64-bit argument occupies two "arg slots." * For example, if you are probing the following function * * void f(int a, long long b, char *c) * * you would refer to a, b, and c as int_arg(1), longlong_arg(2), and * pointer_arg(3), respectively, on a 64-bit architecture; * but on a 32-bit architecture, you would refer to c as pointer_arg(4) * (since b occupies slots 2 and 3). * * If the function you are probing doesn't follow the default rules * for argument passing, you need to call one of the following functions * in your handler before calling any *_arg function: * asmlinkage(), fastcall(), or regparm(). * (This isn't necessary when referring to arguments only by name.) * * For some architectures, the *_arg functions may reject unusually * high values of n. * </tapsetdescription> */ %( kernel_vr == "invalidkernel" %? /** * sfunction register - Return the signed value of the named CPU register * * @name: Name of the register to return * * Description: Return the value of the named CPU register, * as it was saved when the current probe point was hit. * If the register is 32 bits, it is sign-extended to 64 bits. * * For the i386 architecture, the following names are recognized. * (name1/name2 indicates that name1 and name2 are alternative names * for the same register.) * eax/ax, ebp/bp, ebx/bx, ecx/cx, edi/di, edx/dx, eflags/flags, * eip/ip, esi/si, esp/sp, orig_eax/orig_ax, * xcs/cs, xds/ds, xes/es, xfs/fs, xss/ss. * * For the x86_64 architecture, the following names are recognized: * 64-bit registers: * r8, r9, r10, r11, r12, r13, r14, r15, * rax/ax, rbp/bp, rbx/bx, rcx/cx, rdi/di, rdx/dx, * rip/ip, rsi/si, rsp/sp; * 32-bit registers: * eax, ebp, ebx, ecx, edx, edi, edx, eip, esi, esp, flags/eflags, * orig_eax; segment registers: xcs/cs, xss/ss. * * For powerpc, the following names are recognized: * r0, r1, ... r31, nip, msr, orig_gpr3, ctr, link, xer, ccr, softe, trap, * dar, dsisr, result. * * For s390x, the following names are recognized: * r0, r1, ... r15, args, psw.mask, psw.addr, orig_gpr2, ilc, trap. * * For AArch64, the following names are recognized: * x0, x1, ... x30, fp, lr, sp, pc, and orig_x0. */ function register:long (name:string) { } /** * sfunction u_register - Return the unsigned value of the named CPU register * * @name: Name of the register to return * * Description: Same as register(name), except that if the register * is 32 bits wide, it is zero-extended to 64 bits. */ function u_register:long (name:string) { } /** * sfunction int_arg - Return function argument as signed int * * @n: index of argument to return * * Description: Return the value of argument n as a signed int * (i.e., a 32-bit integer sign-extended to 64 bits). */ function int_arg:long (n:long) { } /** * sfunction set_int_arg - Set function argument as signed int * * @n: index of argument to return * @v: value to set * * Description: Set the value of argument n as a signed int * (i.e., a 32-bit integer sign-extended to 64 bits). */ function set_int_arg (n:long, v:long) { } /** * sfunction uint_arg - Return function argument as unsigned int * * @n: index of argument to return * * Description: Return the value of argument n as an unsigned int * (i.e., a 32-bit integer zero-extended to 64 bits). */ function uint_arg:long (n:long) { } /** * sfunction set_uint_arg - Set argument as unsigned int * * @n: index of argument to set * @v: value to set * * Description: Set the value of argument n as an unsigned int * (i.e., a 32-bit integer zero-extended to 64 bits). */ function set_uint_arg:long (n:long, v:long) { } /** * sfunction long_arg - Return function argument as signed long * * @n: index of argument to return * * Description: Return the value of argument n as a signed long. * On architectures where a long is 32 bits, the value is sign-extended * to 64 bits. */ function long_arg:long (n:long) { } /** * sfunction set_long_arg - Set argument as signed long * * @n: index of argument to set * @v: value to set * * Description: Set the value of argument n as a signed long. * On architectures where a long is 32 bits, the value is sign-extended * to 64 bits. */ function set_long_arg (n:long, v:long) { } /** * sfunction ulong_arg - Return function argument as unsigned long * * @n: index of argument to return * * Description: Return the value of argument n as an unsigned long. * On architectures where a long is 32 bits, the value is zero-extended * to 64 bits. */ function ulong_arg:long (n:long) { } /** * sfunction set_ulong_arg - Set function argument as unsigned long * * @n: index of argument to return * @v: value to set * * Description: Set the value of argument n as an unsigned long. * On architectures where a long is 32 bits, the value is zero-extended * to 64 bits. */ function set_ulong_arg (n:long, v:long) { } /** * sfunction longlong_arg - Return function argument as 64-bit value * * @n: index of argument to return * * Description: Return the value of argument n as a 64-bit value. */ function longlong_arg:long (n:long) { } /** * sfunction set_longlong_arg - Set function argument as 64-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the value of argument n as a 64-bit value. */ function set_longlong_arg:long (n:long, v:long) { } /** * sfunction ulonglong_arg - Return function argument as 64-bit value * * @n: index of argument to return * * Description: Return the value of argument n as a 64-bit value. * (Same as longlong_arg.) */ function ulonglong_arg:long (n:long) { } /** * sfunction set_ulonglong_arg - Set function argument as 64-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the value of argument n as a 64-bit value. * (Same as longlong_arg.) */ function set_ulonglong_arg (n:long, v:long) { } /** * sfunction pointer_arg - Return function argument as pointer value * * @n: index of argument to return * * Description: Return the unsigned value of argument n, same as ulong_arg. * Can be used with any type of pointer. */ function pointer_arg:long (n:long) { } /** * sfunction set_pointer_arg - Set function argument as pointer value * * @n: index of argument to return * @v: value to set * * Description: Set the unsigned value of argument n, same as ulong_arg. * Can be used with any type of pointer. */ function set_pointer_arg (n:long, v:long) { } /** * sfunction s32_arg - Return function argument as signed 32-bit value * * @n: index of argument to return * * Description: Return the signed 32-bit value of argument n, * same as int_arg. */ function s32_arg:long (n:long) { } /** * sfunction set_s32_arg - Set function argument as signed 32-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the signed 32-bit value of argument n, * same as int_arg. */ function set_s32_arg (n:long, v:long) { } /** * sfunction u32_arg - Return function argument as unsigned 32-bit value * * @n: index of argument to return * * Description: Return the unsigned 32-bit value of argument n, * same as uint_arg. */ function u32_arg:long (n:long) { } /** * sfunction set_u32_arg - Set function argument as unsigned 32-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the unsigned 32-bit value of argument n, * same as uint_arg. */ function set_u32_arg (n:long, v:long) { } /** * sfunction s64_arg - Return function argument as signed 64-bit value * * @n: index of argument to return * * Description: Return the signed 64-bit value of argument n, * same as longlong_arg. */ function s64_arg:long (n:long) { } /** * sfunction set_s64_arg - Set function argument as signed 64-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the signed 64-bit value of argument n, * same as longlong_arg. */ function set_s64_arg (n:long, v:long) { } /** * sfunction u64_arg - Return function argument as unsigned 64-bit value * * @n: index of argument to return * * Description: Return the unsigned 64-bit value of argument n, * same as ulonglong_arg. */ function u64_arg:long (n:long) { } /** * sfunction set_u64_arg - Set function argument as unsigned 64-bit value * * @n: index of argument to return * @v: value to set * * Description: Set the unsigned 64-bit value of argument n, * same as ulonglong_arg. */ function set_u64_arg (n:long, v:long) { } /** * sfunction asmlinkage - Mark function as declared asmlinkage * * Description: Call this function before accessing arguments * using the *_arg functions * if the probed kernel function was declared asmlinkage in the source. */ function asmlinkage() { } /** * sfunction fastcall - Mark function as declared fastcall * * Description: Call this function before accessing arguments * using the *_arg functions * if the probed kernel function was declared fastcall in the source. */ function fastcall() { } /** * sfunction regparm - Specify regparm value used to compile function * * @n: original regparm value * * Description: Call this function with argument n before accessing function * arguments using the *_arg function is the function was build with the * gcc -mregparm=n option. * * (The i386 kernel is built with \-mregparm=3, so systemtap considers * regparm(3) the default for kernel functions on that architecture.) * Only valid on i386 and x86_64 (when probing 32bit applications). * Produces an error on other architectures. */ function regparm(n:long) { } %) /* * In nd_syscall.return probes, we sometimes need @entry() values. To * ensure we get the argument in the correct mode, we need a function * that calls asmlinkage() first. */ function __asmlinkage_int_arg:long(n:long) { asmlinkage() return int_arg(n) } function __get_kregs:long() %{ /* guru */ STAP_RETVALUE = (int64_t)CONTEXT->kregs; %} function __get_uregs:long() %{ /* guru */ STAP_RETVALUE = (int64_t)CONTEXT->uregs; %} function __set_kregs(regs:long) %{ /* guru */ CONTEXT->kregs = (struct pt_regs*)STAP_ARG_regs; %} function __set_uregs(regs:long) %{ /* guru */ CONTEXT->uregs = (struct pt_regs*)STAP_ARG_regs; %}
Save
cmd:
run