summaryrefslogtreecommitdiffstats
path: root/runtime/sym.c
Commit message (Collapse)AuthorAgeFilesLines
* Make sure addr falls inside section in _stp_mod_sec_lookup.Mark Wielaard2009-04-141-14/+10
| | | | | * runtime/sym.c (_stp_mod_sec_lookup): Use section size to match addr. Only return exact matches, not just closes offset.
* Only set sec in _stp_mod_sec_lookup when not NULL.Mark Wielaard2009-04-141-1/+2
| | | | * runtime/sym.c (_stp_mod_sec_lookup): Only set sec when not NULL.
* Make sure code using the vma tracker compiles again.Mark Wielaard2009-04-081-2/+0
| | | | | | | | * runtime/runtime.h: Include task_finder.c. * runtime/sym.c: Always define task_finder callbacks for usage in tapsets. * runtime/task_finder.c: Define dummy stap_task_finder_target when ! defined(CONFIG_UTRACE). * tapsets.cxx: Never include task_finder.c directly.
* Fix DEBUG_TASK_FINDER_VMA compilation.Mark Wielaard2009-04-081-1/+1
| | | | * runtime/sym.c (_stp_tf_mmap_cb): We get passed vm_flags, not flags.
* Added '#ifdef STP_NEED_VMA_TRACKER' around code that needs it.David Smith2009-04-081-1/+2
| | | | | | | 2009-04-08 David Smith <dsmith@redhat.com> * runtime/sym.c: Added '#ifdef STP_NEED_VMA_TRACKER' around code that needs it.
* Use _stp_snprintf in _stp_symbol_snprint.Mark Wielaard2009-04-081-2/+2
| | | | * runtime/sym.c (_stp_symbol_snprint): Use _stp_snprintf, no _stp_printf.
* Track VMA per pid (group_leader/tgid).Mark Wielaard2009-04-071-5/+6
| | | | | * runtime/sym.c (_stp_tf_vm_cb): Add and remove tsk->group_leader. (_stp_mod_sec_lookup): find vma for task->group_leader.
* PR 9940. Rearchitected task_finder.c a bit.David Smith2009-04-071-23/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-07 David Smith <dsmith@redhat.com> PR 9940. * tapsets.cxx (emit_vma_callback_probe_decl): Initialized new callbacks. (utrace_derived_probe_group::emit_probe_decl): Ditto. (uprobe_derived_probe_group::emit_module_decls): Uses new callback. Makes sure mapping is executable before trying to set a probe in it. (itrace_derived_probe_group::emit_module_init): Calls _stp_sym_init(). (utrace_derived_probe_group::emit_module_init): Ditto. (uprobe_derived_probe_group::emit_module_init): Ditto. * runtime/sym.c: Moved task_finder_vma.c inclusion here from task_finder.c. (_stp_sym_init): New function. (_stp_tf_mmap_cb): New function that replaces _stp_tf_vm_cb. (_stp_tf_munmap_cb): Ditto. * runtime/task_finder.c: Removed task_finder_vma.c inclusion. Split vm_callback into 3 callbacks: mmap_callback, munmap_callback, and mprotect_callback. (stap_register_task_finder_target): Initializes new events variables for the new callbacks. (__STP_TASK_VM_BASE_EVENTS): No longer specifies syscall entry events. (__stp_call_mmap_callbacks): New function. (__stp_call_mmap_callbacks_with_vma): Ditto. (__stp_call_munmap_callbacks): Ditto. (__stp_call_mprotect_callbacks): Ditto. (__stp_call_vm_callbacks): Removed. (__stp_utrace_task_finder_target_quiesce): Calls __stp_call_mmap_callbacks() instead of __stp_call_vm_callbacks(). (__stp_utrace_task_finder_target_syscall_entry): Removed function. (__stp_utrace_task_finder_target_syscall_exit): Reports raw mmap()/mprotect()/munmap() events.
* PR6580: Implement symname, symdata and modname context functions.Mark Wielaard2009-04-021-7/+19
| | | | | | | | | | | | | | | | | | This adds a couple of the suggested context/stack revamp functions from PR6580. In particular it replaces the symbolname() function that sneaked in with the pr6866 branch merge with the suggested symname(). * runtime/sym.c (_stp_mod_sec_lookup): Make section optional. (_stp_symbol_snprint): Provide a way to get optional module info. * tapset/context-symbols.stp: Replace symbolname() with symname(), add modname() and symdata(). (probemod): Implement pc based fallback. * tapset/context-unwind.stp (caller): Adjust for _stp_symbol_snprint change. * testsuite/systemtap.context/usymbols.exp: Use new symname. * testsuite/buildok/modname.stp: New test. * testsuite/buildok/symdata.stp: Likewise. * testsuite/buildok/symname.stp: Likewise.
* Move _stp_tf_vm_cb to sym.c.Mark Wielaard2009-03-201-0/+34
| | | | | | * tapsets.cxx (utrace_derived_probe_group::emit_module_decls): Remove output task finder vma callback _stp_tf_vm_cb. * runtime/sym.c (_stp_tf_vm_cb): And add it here.
* Initialize user and vm_start before use.Mark Wielaard2009-03-191-3/+2
| | | | * runtime/sym.c (_stp_mod_sec_lookup): Initialize user and vm_start.
* Get rid of __stp_tf_get_vma_entry_addr function.Mark Wielaard2009-03-191-12/+16
| | | | | | | | * runtime/task_finder_vma.c (__stp_tf_get_vma_entry_addr): Deleted. (struct __stp_tf_vma_entry): Replace module by user void* field. (stap_add_vma_map_info): Take a void *user arg. (stap_find_vma_map_info): Take a void **user arg. * runtime/sym.c (_stp_mod_sec_lookup): Use stap_find_vma_map_info.
* Merge branch 'master' into pr6866Mark Wielaard2009-02-201-7/+5
|\ | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog: Removed runtime/ChangeLog: Removed runtime/sym.c: Merged runtime/task_finder.c: Merged tapset/ChangeLog: Removed testsuite/ChangeLog: Removed
| * Removed unused functions and variables.David Smith2009-02-181-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-02-18 David Smith <dsmith@redhat.com> * io.c (_stp_log): Removed unused function. * map.c (_stp_cmp): Replace _stp_log() with dbug(). * mempool.c (_stp_mempool_resize): Removed unused function. * print.c (next_fmt): Removed unused function. * procfs.c: Removed unused variable '_stp_num_procfs_files'. * regs.c (_stp_ret_addr): Removed unused function. * string.c (_stp_text_str): Removed unused variable 'len'. * string.h: Removed unused variable '_stdout_' and function declaration for deleted function '_stp_vsprintf'. * sym.c: Removed unused variables. * unwind.c (_stp_create_unwind_hdr): Removed unused function. 2009-02-18 David Smith <dsmith@redhat.com> * control.c: Removed unused variable '_stp_current_buffers'. * procfs.c (_stp_set_buffers): Removed unused function. (_stp_register_ctl_channel_fs): Removed unused variables and label. * symbols.c (u32_swap): Removed unused function. (generic_swap): Ditto. (_stp_sort): Ditto. (_stp_section_is_interesting): Ditto. * transport.c (_stp_transport_init): Removed unused variable 'ret'.
| * Use 'static' as much as possibleJosh Stone2009-01-281-4/+4
| | | | | | | | | | | | | | | | | | | | This change just inserts 'static' on runtime, tapset, and generated C functions and globals, so the compiler can do a better job of optimizing. My tests with small scripts show ~10% reduction in compile time and ~20% reduction in module size. Larger scripts may show less benefit, but I expect purely positive results.
* | Always include task_finder.c and enable emit_vm_callback_probe_decl.Mark Wielaard2008-12-151-1/+3
| |
* | PR6866: First pass at translating addresses to symbol names through vma.Mark Wielaard2008-12-101-6/+26
|/
* PR4886: enable assertive build-id checking for new kernelsFrank Ch. Eigler2008-11-261-2/+11
|
* PR4886: weaken build-id failure semanticsFrank Ch. Eigler2008-10-071-33/+27
|
* PR4886: check build-id if able.Wenji Huang2008-10-061-0/+66
| | | | This provides sanity check of debuginfo file based on build-id. Many cases are considered, whether build-id exists in debuginfo file or not, whether module is loaded or not, whether build-id exists in runtime kernel/module. It will do work when LD >= 2.18 and kernel >=2.6.23, otherwise no check.
* Add new function _stp_mod_sec_lookup extracted from _stp_kallsyms_lookup.Mark Wielaard2008-09-101-23/+32
|
* Correct this_section_offset calculation in _stp_kallsyms_lookup.Mark Wielaard2008-09-091-1/+1
|
* support multiple-relocatable-section modules such as hypothetical ↵Frank Ch. Eigler2008-07-171-52/+49
| | | | -ffunction-sections .ko's
* avoid appearing to succeed in stp_relocation() of a symbol for a module that ↵Frank Ch. Eigler2008-07-041-0/+4
| | | | is not known to be loaded
* emit all symbol tables at compile time; don't do any module munging; new ↵Frank Ch. Eigler2008-07-041-95/+45
| | | | unwinder still disabled
* STP_RELOCATE message for kernel relocatability (re)adaption, starting ↵Frank Ch. Eigler2008-06-291-4/+7
| | | | implementation
* 2.6.25 fixes and stack level limits.Martin Hunt2008-04-151-2/+3
|
* rebased unwind_branch on top of current masterFrank Ch. Eigler2008-03-251-3/+3
|
* 2008-02-27 Martin Hunt <hunt@redhat.com>hunt2008-02-271-91/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | * sym.h (_stp_module): Add text_size, lock, and unwind data pointer. * sym.c (_stp_find_module_by_addr): New function. (_stp_kallsyms_lookup): Call _stp_find_module_by_addr(). (_stp_get_unwind_info): New. * runtime.h: Move debug macros to debug.h. Include it. * debug.h: New file. * map.c: Update debug calls. * map-gen.c: Update debug calls. * pmap-gen.c: Update debug calls. * mempool.c: New file. * symbols.c: Use rwlocks. Use new dbug macros. Handle unwind info if present. * transport.c: Include mempool.c. Update dbug and kbug calls to new macros. * transport_msgs.h (_stp_command_name): Add struct containing message names for debugging. * control.c, procfs.c: Use new dbug macros. Use new mempool functions.
* Add support for memory allocation tracking.hunt2008-01-151-7/+13
|
* 2007-07-02 Martin Hunt <hunt@redhat.com>hunt2007-07-021-1/+34
| | | | | | | | * 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-2/+2
| | | | | * vsprintf.c: Add comment about %p. * regs.c, stack*.c, sym.c: Fix %p calls.
* 2007-03-22 Frank Ch. Eigler <fche@elastic.org>fche2007-03-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | PR 4224. * staptree.h (probe): Add privileged field. * elaborate.cxx, parse.cxx: Pass privileged flag to probes. * tapsets.cxx (dwarf_query): Add has_absolute field. (dwarf_derived_probe ctor): Tolerate it. (register_patterns): Expose it. (dwarf_builder::build): Implement it with no dwfl whatsoever. * NEWS: Document kernel.statement().absolute. * stapprobes.5.in: Ditto. 2007-03-22 Frank Ch. Eigler <fche@elastic.org> PR 4224. * systemtap.base/probefunc.exp: Use kernel.statement().absolute instead with grep-found schedule_tick address. * semko/thirtyseven.stp, thirtyeight.stp: New tests. * buildok/twentyeight.stp: New test. 2007-03-22 Frank Ch. Eigler <fche@elastic.org> * sym.c (_stp_module_relocate): Tolerate empty section string.
* 2007-03-21 Martin Hunt <hunt@redhat.com>hunt2007-03-211-53/+47
| | | | | | | | | | | * sym.h: Declare _stp_module_relocate. * sym.c (_stp_module_relocate): Add comments, reformat, add a way for "last" cached values to be cleared when modules are removed. (_stp_symbol_print): Simplify and remove static buffer. (_stp_symbol_snprint): Ditto. * symbols.c (_stp_del_module): Add a call to _stp_module_relocate to clear its cache.
* 2007-03-20 Frank Ch. Eigler <fche@elastic.org>fche2007-03-211-15/+35
| | | | | | | | | | | | | | | | | | | | | | PR 4224. * tapsets.cxx (add_probe_point): Make kernel implicitly relocated relative to the _stext symbol. (dwarf_derived_probe ctor, emit_module_decls): Cooperate. (lookup_symbol_address): New function. (dwarf_builder::build): Call it thrice. (in_kprobes_function): Simplify. * session.h (systemtap_session): Rename cached symbol addresses. * translate.cxx, elaborate.cxx: Corresponding tweaks. 2007-03-20 Frank Ch. Eigler <fche@elastic.org> PR 4224. * sym.c (_stp_module_relocate): Support kernel relocations. 2007-03-20 Frank Ch. Eigler <fche@elastic.org> * symbols.c (_stp_do_symbols): Add cautionary blurb for important setup of _stp_modules[0]->text.
* 2007-03-18 Martin Hunt <hunt@redhat.com>hunt2007-03-191-1/+1
| | | | | * staprun.h (err): Define. * symbols.c (get_sections): More overflow checking.
* 2007-03-18 Martin Hunt <hunt@redhat.com>hunt2007-03-181-2/+2
| | | | | * stack.c, string.c, sym.c, transport/symbols.c: Fix some signed vs unsigned comparison warnings.
* 2007-01-31 Martin Hunt <hunt@redhat.com>hunt2007-01-311-37/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* * a question for huntfche2006-11-061-1/+1
|
* New dynamic module and symbol handling code.hunt2006-11-021-21/+80
|
* 2006-10-12 Martin Hunt <hunt@redhat.com>hunt2006-10-121-3/+22
| | | | | | | | | | | | | | | * 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.
* 2006-09-27 Martin Hunt <hunt@redhat.com>hunt2006-09-271-0/+44
| | | | | | | | | | * stack.c (_stp_kta): Rewrite. Use the _stap_symbols struct instead of calling into the kernel. * sym.c (_stp_kallsyms_lookup): Move here from runtime.h * runtime.h: Get rid of all the symbol stuff that did not belong here.
* 2006-05-24 Josh Stone <joshua.i.stone@intel.com>jistone2006-05-241-0/+32
| | | | | | | PR 2677 * sym.c (_stp_symbol_sprint_basic): New function that returns just the symbol name, and doesn't bother with String. * context.stp (probefunc): Use _stp_symbol_sprint_basic
* 2005-10-31 Martin Hunt <hunt@redhat.com>hunt2005-10-311-1/+11
| | | | * ALL: Cleanup copyrights.
* 2005-10-06 Frank Ch. Eigler <fche@elastic.org>fche2005-10-061-4/+0
| | | | | | | | | | | | | | | | | | PR 1332. * translate.cxx (emit_symbol_data): New function to transcribe a processed address->symbol lookup table, based upon /proc/kallsyms. 2005-10-06 Frank Ch. Eigler <fche@elastic.org> PR 1332. * sym.h: New file to declare explicit symbol table struct. * runtime.h (_stp_kallsyms_lookup_tabled): Use it if available. * sym.c (_stp_symbol_sprint): HAS_LOOKUP mooted. 2005-10-06 Frank Ch. Eigler <fche@elastic.org> PR 1132. * systemtap.samples/symbols.*: New test.
* 2005-09-22 Martin Hunt <hunt@redhat.com>hunt2005-09-221-1/+4
| | | | | | | | | | | | * runtime.h (init_module): Only initialize _stp_kta and _stp_kallsyms_lookup on i386 and x86_64. Define HAS_LOOKUP. * sym.c (_stp_symbol_sprint): If HAS_LOOKUP is not defined, just print address in hex. * current.c (_stp_ret_addr): Add ppc64 version. (_stp_sprint_regs): PPC64 version from Ananth N Mavinakayanahalli <ananth@in.ibm.com>
* 2005-08-31 Martin Hunt <hunt@redhat.com>hunt2005-08-311-11/+0
| | | | | | | | * sym.c (_stp_kallsyms_lookup): Moved to runtime.h. * stack.c (_stp_kta): Moved to runtime.h. * runtime.h (init_module): Initialize _stp_kallsyms_lookup and _stp_kta. * probes.c (_stp_lookup_name): Replaced by kallsyms_lookup_name().
* 2005-05-26 Martin Hunt <hunt@redhat.com>hunt2005-05-261-20/+10
| | | | | | | | * current.c (_stp_sprint_regs): Implement for i386. * sym.c (_stp_symbol_sprint): Check name before trying to print it. (_stp_symbol_print): Change to macro that calls _stp_symbol_sprint().
* *** empty log message ***hunt2005-04-071-5/+5
|
* Update to use relayfs.hunt2005-04-071-21/+27
|