/usr/share/systemtap/runtime
NameSizeModeActions
dyninst/-0755rm
linux/-0755rm
softfloat/-0755rm
transport/-0755rm
unwind/-0755rm
addr-map.c5230644editdlrm
addr-map.h11560644editdlrm
alloc.c4980644editdlrm
arith.c4830644editdlrm
common_probe_context.h65760644editdlrm
common_session_state.h4150644editdlrm
compatdefs.h36820644editdlrm
copy.c5850644editdlrm
debug.h4850644editdlrm
io.c5080644editdlrm
k_syms.h1820644editdlrm
loc2c-runtime.h179370644editdlrm
map-gen.c259770644editdlrm
map-stat.c35890644editdlrm
map.c146600644editdlrm
map.h59180644editdlrm
mempool.c26440644editdlrm
namespaces.h4870644editdlrm
pmap-gen.c87100644editdlrm
print.c4860644editdlrm
print.h8720644editdlrm
print_flush.c30730644editdlrm
probe_lock.h4980644editdlrm
procfs-probes.c46730644editdlrm
procfs-probes.h6740644editdlrm
procfs.c40210644editdlrm
proc_fs_compatibility.h23160644editdlrm
ptrace_compatibility.h15120644editdlrm
regs.c42800644editdlrm
regs.h23520644editdlrm
runtime.h9280644editdlrm
runtime_context.h6690644editdlrm
runtime_defines.h35820644editdlrm
softfloat.c771590644editdlrm
softfloat.h51250644editdlrm
stack-arm.c16880644editdlrm
stack-ia64.c10830644editdlrm
stack-mips.c1250644editdlrm
stack-s390.c23620644editdlrm
stack.c217900644editdlrm
stat-common.c84860644editdlrm
stat.c74210644editdlrm
stat.h19640644editdlrm
stp_helper_lock.h36690644editdlrm
stp_string.c86320644editdlrm
stp_string.h5980644editdlrm
stp_task_work.c35110644editdlrm
stp_utrace.c947350644editdlrm
stp_utrace.h140100644editdlrm
sym.c397570644editdlrm
sym.h65390644editdlrm
syscall.h174080644editdlrm
task_finder_vma.c132900644editdlrm
time.c148870644editdlrm
timer.c4810644editdlrm
timer.h4820644editdlrm
uidgid_compatibility.h6030644editdlrm
unwind.c478900644editdlrm
utrace_compatibility.h31480644editdlrm
vma.c95450644editdlrm
vsprintf.c240580644editdlrm
vsprintf.h15020644editdlrm
Edit: /usr/share/systemtap/runtime/stack-s390.c (2362B)
/* -*- linux-c -*- * s390 stack tracing functions * * This file is part of systemtap, and is free software. You can * redistribute it and/or modify it under the terms of the GNU General * Public License (GPL); either version 2, or (at your option) any * later version. */ static unsigned long __stp_show_stack (unsigned long sp, unsigned long low, unsigned long high, int verbose) { struct stack_frame *sf; struct pt_regs *regs; unsigned long ip; while (1) { sp = sp & PSW_ADDR_INSN; /* fixme: verify this is a kernel stack */ if (sp < low || sp > high - sizeof(*sf)) return sp; sf = (struct stack_frame *) sp; ip = sf->gprs[8] & PSW_ADDR_INSN; if (verbose) _stp_printf("[%p] [%p] ", (int64_t)sp, (int64_t)ip); _stp_print_addr((int64_t)ip, verbose, NULL); /* Follow the back_chain */ while (1) { low = sp; sp = sf->back_chain & PSW_ADDR_INSN; if (!sp) break; if (sp <= low || sp > high - sizeof(*sf)) return sp; sf = (struct stack_frame *) sp; ip = sf->gprs[8] & PSW_ADDR_INSN; if (verbose) _stp_printf("[%p] [%p] ", (int64_t)sp, (int64_t)ip); _stp_print_addr((int64_t)ip, verbose, NULL); } /* Zero backchain detected, check for interrupt frame. */ sp = (unsigned long) (sf + 1); if (sp <= low || sp > high - sizeof(*regs)) return sp; regs = (struct pt_regs *) sp; if (verbose) _stp_printf("[%p] [%p] ", (int64_t)sp, (int64_t)ip); _stp_print_addr((int64_t)ip, verbose, NULL); low = sp; sp = regs->gprs[15]; } } #ifndef ASYNC_SIZE #define ASYNC_SIZE (PAGE_SIZE << 2) #endif static void __stp_stack_print (struct pt_regs *regs, int verbose, int levels) { unsigned long *_sp = (unsigned long *)®_SP(regs); unsigned long sp = (unsigned long)_sp; // unsigned long sp = (unsigned long)*_sp; sp = __stp_show_stack(sp, S390_lowcore.async_stack - ASYNC_SIZE, S390_lowcore.async_stack, verbose); #ifdef CONFIG_THREAD_INFO_IN_TASK /* FIXME: Note that this CONFIG_THREAD_INFO_IN_TASK * code is untested, since the s390 uses the dwarf * unwinder so this code doesn't get called. */ __stp_show_stack(sp, ((unsigned long)current->stack), (((unsigned long)current->stack) + THREAD_SIZE), verbose); #else __stp_show_stack(sp, S390_lowcore.thread_info, S390_lowcore.thread_info + THREAD_SIZE, verbose); #endif }