summaryrefslogtreecommitdiffstats
path: root/runtime/stack-i386.c
Commit message (Collapse)AuthorAgeFilesLines
* Detect kretprobe trampoline and use fallback unwinder.Mark Wielaard2009-06-031-3/+4
| | | | | | | | | | | | * runtime/sym.h (_stp_kretprobe_trampoline): Document. * translate.cxx (unwindsym_dump_context): Add stp_kretprobe_trampoline_addr. (dump_unwindsyms): Detect kretprobe_trampoline_holder symbol address. (emit_symbol_data): Initialize and emit _stp_kretprobe_trampoline. * runtime/transport/symbols.c (_stp_do_relocation): Detect kernel load address and adjust _stp_kretprobe_trampoline. * runtime/stack-i386.c (__stp_stack_print): Always use fallback unwinder when hitting kretprobe_trampoline_holder. * runtime/stack-x86_64.c (__stp_stack_print): Likewise.
* Don't use stack fallback for user space unwinding when using dwarf unwinder.Mark Wielaard2009-04-211-4/+8
| | | | | | | | It never seems to be anywhere near correct. * runtime/stack-i386.c (__stp_stack_print): Stop unwinding when dwarf unwinder fails and we are unwinding user space task. * runtime/stack-x86_64.c (__stp_stack_print): Likewise.
* Pass task from tapset, through stack and unwind functions for lookup.Mark Wielaard2009-04-201-4/+5
| | | | | | | | | | | | | | | | | * runtime/stack-arm.c (__stp_stack_print): Take struct task_struct *. * runtime/stack-ia64.c (__stp_stack_print): Likewise. * runtime/stack-ppc64.c (__stp_stack_print): Likewise. * runtime/stack-s390.c (__stp_stack_print): Likewise. * runtime/stack-i386.c (__stp_stack_print): Likewise. And add check and pass to unwind() and _stp_func_print(). * runtime/stack-x86_64.c: Likewise. * runtime/stack.c *_stp_stack_print): Take and pass on task_struct. (_stp_stack_snprint): Likewise. * runtime/unwind.c (unwind): Take and use task_struct for _stp_mod_sec_lookup(). * tapset/context-unwind.stp (print_backtrace): Pass NULL to _stp_stack_print(). (backtrace): Pass NULL to _stp_stack_snprint().
* Pass task to _stp_func_print and _stp_kallsyms_lookup.Mark Wielaard2009-04-191-3/+3
| | | | | | | | | * runtime/sym.c (_stp_func_print): Take task, pass to _stp_kallsyms_lookup. * runtime/stack.c (print_stack_address): Pass NULL. * runtime/stack-i386.c (_stp_stack_print_fallback): Pass NULL. (__stp_stack_print): Pass NULL or current. * runtime/stack-x86_64.c (_stp_stack_print_fallback): Pass NULL. (__stp_stack_print): Pass current.
* stap autoconf test for kernel stack trace supportTim Moore2009-03-041-1/+1
| | | | | | | | | | * buildrun.cxx (compile_pass): Add autoconf line for stack trace test, which defines STAPCONF_KERNEL_STACKTRACE. * runtime/autoconf-save-stack-trace.c: New file. * runtime/stack.c : Use STAPCONF_KERNEL_STACKTRACE instead of tests for kernel configuration and versions. * runtime/stack-i386.c : ditto * runtime/stack-x86_64.c : ditto
* PR9866 band-aid: deactivate new CONFIG_STACKTRACE code for older kernelsFrank Ch. Eigler2009-02-181-1/+1
|
* Remove context argument from _stp_stack_print_fallback (PR 9860).William Cohen2009-02-181-4/+4
|
* Use kernel stack backtrace support when availableTim Moore2009-02-111-0/+2
| | | | | Define new functions that use the kernel support to do a backtrace of other tasks than current.
* backtrace fix for i386 with neither frame pointers nor dwarf unwindingFrank Ch. Eigler2008-09-101-1/+5
|
* 2.6.25 fixes and stack level limits.Martin Hunt2008-04-151-27/+23
|
* runtime backtrace: stop infinite loops by checking for full print bufferFrank Ch. Eigler2008-04-131-3/+6
| | | | | | | | 2008-04-13 Frank Ch. Eigler <fche@elastic.org> * print.c (_stp_pbuf_full): New function to note full print buffer. * stack-{i386,x86_64}.c: Use it in all stack-searching loops, to impose another limit against unbounded iteration.
* Support for kernels built with CONFIG_FRAME_POINTERMartin Hunt2008-03-301-2/+2
|
* Fix regression.Martin Hunt2008-03-281-1/+1
|
* dded _stp_read_address() and changed code to use it.Martin Hunt2008-03-281-2/+2
|
* kretprobe trampoline fixesMartin Hunt2008-03-281-9/+13
| | | | | Recognize when a kretprobe trampoline was hit and continue with inexact stack dump. Also some testsuite changes.
* i386 fixes.Martin Hunt2008-03-261-23/+48
|
* 2008-01-27 Frank Ch. Eigler <fche@elastic.org>fche2008-01-271-1/+1
| | | | * stack-i386.c (__stp_stack_print): Correct #elif->#else typo.
* From srinivasa@in.ibm.com, To make systemtap to work with register rename ↵srinivasa2008-01-181-0/+4
| | | | patch for x86/x86_64
* Add support for memory allocation tracking.hunt2008-01-151-2/+2
|
* 2007-07-02 Martin Hunt <hunt@redhat.com>hunt2007-07-021-61/+2
| | | | | | | | * sym.c (_stp_kallsyms_lookup): Improve heuristic for determining when a pointer is in a function. (_stp_func_print): New function. * stack-i386.c, stack-x86_64.c: Remove obsolete unwind code. Use _stp_func_print().
* 2007-05-15 Martin Hunt <hunt@redhat.com>hunt2007-05-161-3/+3
| | | | | * vsprintf.c: Add comment about %p. * regs.c, stack*.c, sym.c: Fix %p calls.
* 2007-01-31 Martin Hunt <hunt@redhat.com>hunt2007-01-311-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * string.c (_stp_string_init): Deleted. (_stp_sprintf): Deleted. (_stp_vsprintf): Deleted. (_stp_string_cat_cstr): Deleted. (_stp_string_cat_string): Deleted. (_stp_string_cat_char): Deleted. (_stp_string_ptr): Deleted. (_stp_string_cat): Deleted. (_stp_snprintf): Moved from vsprintf.c. (_stp_vscnprintf): Moved from vsprintf.c. * string.h (STP_STRING_SIZE): Deleted. (STP_NUM_STRINGS): Deleted. Remove all references to type "String". * vsprintf.c (_stp_vscnprintf): Moved to string.c. (_stp_snprintf): Moved to string.c * sym.c (_stp_symbol_sprint): Replaced with _stp_symbol_print, which writes to the print buffer. (_stp_symbol_sprint_basic): Replaced with _stp_symbol_snprint. * runtime.h: Include io.c. * stat-common.c: Use new _stp_print* functions. * stat.c: Ditto. * regs.c: Renamed to regs-ia64.c. * current.c: Renamed regs.c. * regs-ia64.c: New file (renamed from regs.c). * stack.c (_stp_stack_sprint): Renamed _stp_stack_print and now just prints to the print buffer. Calls __stp_stack_print instead of __stp_stack_sprint. (_stp_stack_snprint): New function. Calls _stp_stack_print and then copies the print buffer into a string. (_stp_stack_printj): Deleted. (_stp_ustack_sprint): Deleted. * stack-*.c: Rewritten to print instead of writing to strings. Uses new _stp_print* functions. * print.c (_stp_printf): Create new function instead of macro. (_stp_print): Ditto. (_stp_print_char): New function. * map.c: Use _stp_print() and _stp_print_char() instead of _stp_print_cstr(). * io.c (_stp_vlog): Use _stp_print() instead of _stp_string_cat_cstr(). * copy.c (_stp_string_from_user): Deleted.
* 2006-10-12 Martin Hunt <hunt@redhat.com>hunt2006-10-121-0/+102
* stack.c: Reorganize and split arch-specific functions to separate files. (_stp_kta): Better checking. (_stp_stack_sprint): Better handling of return probes. * stack-i386.c: New file. Uses 2.6.18 DWARF unwinder if available. * stack-x86_64.c: New file. Uses 2.6.18 DWARF unwinder if available. * stack-ppc64.c: New file. * stack-ia64.c: New file. * sym.c (_stp_kallsyms_lookup_name): New function. Like kallsyms_lookup_name() except use our internal lookup table.