summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* PR5930: Address-op for $target and @cast membersJosh Stone2009-07-1515-2/+100
| | | | | | | | | | | | | | | | This allows the '&' operator to get the address of @cast and $target variable expressions. * staptree.h (target_symbol): add addressof field * staptree.cxx (target_symbol::print): print '&' for addressof (cast_op::print): ditto * parse.cxx (parser::parse_value): allow '&' prefix on $target/@cast * dwflpp.cxx (dwflpp::translate_final_fetch_or_store): allow taking the computed address without actually doing a final fetch. * tapset* (*::visit_target_symbol): throw errors for $vars w/o addresses * testsuite/systemtap.base/cast.stp: add &@cast test * testsuite/semok/target_addr.stp: test '&' on different member types * testsuite/semko/target_addr?.stp: test failure on bitfields/registers
* Update for RHEL 5.4William Cohen2009-07-151-1/+1
|
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapWilliam Cohen2009-07-154-23/+112
|\
| * utrace_syscall_args.stp makes sure open syscall is from target pid.David Smith2009-07-151-1/+1
| | | | | | | | | | * testsuite/systemtap.base/utrace_syscall_args.stp: Makes sure the open syscall is from the target pid.
| * Implemented ring_buffer iterators.David Smith2009-07-152-21/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * runtime/transport/ring_buffer.c (_stp_ring_buffer_empty_cpu): New function. (_stp_ring_buffer_empty): Ditto. (_stp_ring_buffer_iterator_increment): Ditto. (_stp_tracing_wait_pipe): Calls _stp_ring_buffer_empty() instead of ring_buffer_empty(). (_stp_peek_next_event): Looks at iterators first. (_stp_find_next_event): Calls _stp_ring_buffer_empty_cpu() and increments iterator. (_stp_data_read_trace): Opens and closes ring_buffer iterators. (_stp_data_poll_trace): Calls _stp_ring_buffer_empty(). (__stp_relay_wakeup_timer): Ditto. * runtime/transport/control.c (_stp_ctl_write_cmd): Increased level required to get a debug print.
| * testsuite rpm package should depend on systemtap-sdt-develMark Wielaard2009-07-151-1/+1
| | | | | | | | * systemtap.spec (testsuite): Require systemtap-sdt-devel.
* | Add desciption of tracepoint event.William Cohen2009-07-151-0/+26
| |
* | Add description of dropwatch to the examples.William Cohen2009-07-152-0/+115
|/
* PR10399 dtrace should obey prefix install pathMark Wielaard2009-07-153-1/+6
| | | | | | | * dtrace: Renamed to... * dtrace.in: Add -I@prefix/include to gcc invocation. * configure.ac (AC_CONFIG_FILES): List dtrace. * configure: Regenerated.
* PR10388 Support DW_OP_call_frame_cfa.Mark Wielaard2009-07-155-16/+115
| | | | | | | | | | | | | | | | | | Depends on elfutils 0.142 cfi support. * loc2c.h (c_translate_location): Take (optional) Dwarf_Op *cfa_ops. * loc2c.c (translate): Recognize DW_OP_call_frame_cfa. (location_from_address): Take cfa_ops, examine fb_ops, if it is DW_OP_call_frame_cfa, pass cfa_ops to translate instead. (location_relative): Take cfa_ops, pass to location_from_address. (c_translate_location): Take cfa_ops, pass to location_from_address. * loc2c-test.c (handle_variable): Take cfa_ops, pass to c_translate_location when needed. (main): Fetch cfa_ops, pass to handle_variable. * dwflpp.h (struct dwflpp): Add new method get_cfa_ops. * dwflpp.cxx: Include elfutils/version.h. (translate_location): Fetch cfa_ops when necessary. (get_cfa_ops): New method.
* PR4166: Allow array-like indexing on pointersJosh Stone2009-07-144-7/+39
| | | | | | | * dwflpp.cxx (dwflpp::translate_components): let pointers get treated the same as arrays, and add a final DIE dereference for array access. * loc2c.c (c_translate_array): tolerate pointer types * testsuite/systemtap.base/pointer_array.*: new test
* tapsets.cxx doesn't need loc2c.h. All done through dwflpp.cxx now.Mark Wielaard2009-07-141-1/+0
| | | | * tapsets.cxx: Remove loc2c.h include.
* Remove -O[0123s] gcc optimization flags for gcc pass 4 speedups again.Mark Wielaard2009-07-146-57/+7
| | | | | | | | | | | | | We cannot guarantee that (un)optimized code compiles and/or generates fully functional code, so don't tempt the user to try it out. * session.h (struct systemtap_session): Remove gcc_flags string field. * hash.cxx (find_script_hash): Don't add gcc_flags. * main.cxx (usage): Remove -O[0123s] documentation. (main): Don't use gcc_flags. * buildrun.cxx (compile_pass): Don't add gcc_flags to EXTRA_CFLAGS. * stap1.in: Remove -O[0123s] documentation. * testsuite/systemtap.base/cache.exp: Remove tests for -O[0123s].
* Make kernel opt-level the default again.Mark Wielaard2009-07-144-5/+13
| | | | | | | * main.cxx (main): Default gcc_flags to kernel opt-level (empty). * buildrun.cxx (compile_pass): Add -freorder-blocks back, document choices. * stap.1.in: Document new default opt-level. * testsuite/systemtap.base/cache.exp: Adjust for new caching results.
* PR10075: emit address in probe registration logicwenji2009-07-121-2/+2
| | | | | * tapsets.cxx(dwarf_derived_probe_group::emit_module_init, kprobe_derived_probe_group::emit_module_init): print address.
* Add -O[0123s] gcc optimization flags for gcc pass 4 speedup.Mark Wielaard2009-07-116-2/+53
| | | | | | | | | | * session.h (struct systemtap_session): Add gcc_flags string field. * main.cxx (usage): Document -O[0123s]. (main): Default gcc_flags to -O0. Add O:: to getopt_long. Handle case 'O' to set gcc_flags. * buildrun.cxx (compile_pass): Add gcc_flags to EXTRA_CFLAGS. * stap1.in: Add -O[0123s] documentation. * testsuite/systemtap.base/cache.exp: Add tests for -O[0123s].
* PR3523 was fixed, enable -t cache test case.Mark Wielaard2009-07-111-3/+2
| | | | * testsuite/systemtap.base/cache.exp: Enable -t tests.
* Don't accidentially use user space ntohs function.Mark Wielaard2009-07-111-2/+5
| | | | | | | | | The definition of ntohs comes from user space include headers netinet/in.h which could define it as function instead of macro. So use builtin kernel be16_to_cpu instead. * tapset/aux_syscalls.stp (_struct_sockaddr_u): Define and use _stp_ntohs as be16_to_cpu.
* Fix source_loc ostream operator << representation.Mark Wielaard2009-07-101-1/+1
| | | | * parse.cxx (operator << (ostream&,const source_loc&)): Add loc.file->name.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-07-1014-188/+338
|\
| * Add numa_faults.stp example.William Cohen2009-07-106-1/+99
| |
| * PR10381 sdt.h macros create relocatable addresses in non-writable section.Mark Wielaard2009-07-101-1/+9
| | | | | | | | | | | | | | | | Allocated section needs to be writable when creating pic shared objects because we store relocatable addresses in them. * includes/sys/sdt.h (ALLOCSEC): New macro, depends on __PIC__. (STAP_PROBE_DATA_): Use new ALLOCSEC macro.
| * Remove the filename copy from token->locationJosh Stone2009-07-094-37/+30
| | | | | | | | | | The location already has a pointer to a stapfile with the filename, so there's no need to keep an extra copy.
| * Optimize string usage in the lexerJosh Stone2009-07-092-113/+101
| | | | | | | | | | This speeds up the parsing stage >2x, mostly by minimizing string construction and comparison where char comparison will do.
| * Added timer data flushing and overwrite handling to the ring_buffer transport.David Smith2009-07-093-40/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * buildrun.cxx (compile_pass): Checks for ring_buffer api change. * runtime/autoconf-ring_buffer-flags.c: New file. * runtime/transport/ring_buffer.c (tracing_wait_pipe): No longer schedules, just returns. The timer function will handle it later. (_stp_data_write_reserve): Handles ring_buffer api change. Added overwrite processing. If we're full, delete an event to make room. (_stp_data_write_commit): Handles ring_buffer api change. (__stp_relay_wakeup_timer): New function. (__stp_relay_timer_start): Ditto. (__stp_relay_timer_stop): Ditto. (_stp_transport_data_fs_start): Calls __stp_relay_timer_start(). (_stp_transport_data_fs_stop): Calls __stp_relay_timer_stop(). (_stp_transport_data_fs_overwrite): Sets overwrite flag.
* | Rename systemtap_exit to cleanup.Dave Brolley2009-07-101-5/+6
|/ | | | Allow shutdown_server to test $server_pid in order to determine whether we started a server.
* PR3498, cont'dFrank Ch. Eigler2009-07-091-0/+4
| | | | * dwflpp.cxx (dwfl_report_offline_predicate): Reject NULL filenames.
* Fix signal.send matching for 2.6.30+.Roland McGrath2009-07-091-26/+28
|
* Clarify sdt.h license for public domain.Stan Cox2009-07-081-1/+1
|
* Do not use GPL for sdt.h.Stan Cox2009-07-081-5/+1
|
* PR3498 cont'd, fix wildcard module("*") probesFrank Ch. Eigler2009-07-084-24/+27
| | | | | | | | * dwflpp.cxx (name_has_wildcard): Make static. (dwfl_report_offline_predicate): Check & adjust behavior. * dwflpp.h: Corresponding changes. * tapsets.cxx: Note that kern_dw[] keys may be wildcard strings. * testsuite/buildok/fortysix.stp: New test.
* Add support for constant struct member field offsets.Mark Wielaard2009-07-084-5/+86
| | | | | | | * loc2c.h (c_translate_add_offset): New function prototype. * loc2c.c (c_translate_add_offset): New function implementation. * loc2c-test.c (handle_variable): Use c_translate_add_offset if appropriate. * dwflpp.cxx (translate_location): Likewise.
* More gcc 4.5 'jump skips variable initialization' fixlets.Mark Wielaard2009-07-084-20/+41
| | | | | | | | | * tapset/ioblock.stp (__bio_start_sect): Declare, then initialize variables that could (through kread) take an early jump. * tapset/nfs_proc.stp (get_prot_from_client): Likewise. * tapset/scsi.stp (scsi_timer_pending): Likewise. * tapset/task.stp (task_cpu): Likewise. (task_open_file_handles): Likewise.
* canonicalize exelib.exp test case names by [file tail /full/path]Frank Ch. Eigler2009-07-071-4/+4
|
* PR3498: speed up pass-2 and pass-3 for kernel offline dwfl module searchingFrank Ch. Eigler2009-07-075-56/+121
| | | | | | | | | | | | | | | | | | | * dwflpp.cxx (dwflpp ctor): Parametrize for user/kernel modes. Update callers. (dwfl_report_offline_predicate): New function. Filter and abort searches early if possible. (setup_kernel): Use new predicate. * dwflpp.h: Corresponding changes. * tapsets.cxx (dwfl_report_offline_predicate): Remove this shared implementation. (dwarf_builder): Turn kern_dw into module_name->dwflpp* map, just like user_dw. (get_kern_dw): Adapt. (dwarf_build_no_more): Adapt. * tapsets.h: Remove old shared predicate. * translate.cxx (dwfl_report_offline_predicate2): New function. Filter and abort searches early if possible. (emit_symbol_data): Use it.
* PR10348 Compilation failure with gcc 4.5 snapshot: switch jumps over vars.Mark Wielaard2009-07-072-7/+10
| | | | | | | * loc2c-test.c (print_vars): Define attr_mem, typedie_mem and typedie before switch. * loc2c.c (translate): Wrap case DW_OP_drop in block brackets. (location_relative): Initialize stack.
* BZ 490234 fix.David Smith2009-07-061-8/+7
| | | | | | * runtime/procfs.c (_stp_rmdir_proc_module): Now before removing either '/proc/systemtap/${MODULE}' or '/proc/systemtap', lock the transport directory. Also make sure '/proc/systemtap' is empty before removal.
* Fixed PR 10258.David Smith2009-07-021-26/+45
| | | | | | | | | | | * tapset-procfs.cxx (procfs_derived_probe::join_group): Outputs structure definition. (procfs_derived_probe_group::emit_module_decls): The generated '_stp_procfs_read' and '_stp_procfs_write' functions no longer put a string_t on the stack. (procfs_var_expanding_visitor::visit_target_symbol): The generated '_procfs_value_set' and '_procfs_value_get' functions copy directly into or out of the os buffer.
* PR10327: resolve symbol aliases to dwarf functionsJosh Stone2009-07-013-108/+89
| | | | | | | | | | | | | | | | | | | | | This will first read in the symbol table for modules, and update the dwarf cu_function_cache with aliased names too. Then when iterating in dwarf, all of the possible names are matched, instead of only the canonical dwarf name. * dwflpp.cxx (dwflpp::iterate_over_functions): call update_symtab, and track wildcard addresses in a set to avoid alias dupes * dwflpp.h (symbol_table::Compare): removed * tapsets.cxx (symbol_table::map_by_addr): replaces list_by_addr (symbol_table::sort): removed -- multimap doesn't need sorting (symbol_table::mark_dwarf_redundancies): removed, see update_symtab (symbol_table::purge_syscall_stubs): remove map elements inline (dwarf_query::handle_query_module): preload the symtable. (query_dwarf_func): don't compare the function a second time, especially since it may have been an alias that matched at first. (module_info::get_symtab): allow being called multiple times (module_info::update_symtab): copy dies from the cache to the symtab, and also add aliased names to the cache
* AUTHORS updateJosh Stone2009-07-011-0/+2
|
* Removed extra period in statement.(ADDRESS)Josh Stone2009-07-011-1/+1
|
* SystemTap Language Reference: DWARF-less probing patchRobb Romans2009-07-011-1/+59
| | | | | | | | Here is a patch to the Language Reference Guide that adds information about DWARF-less probing. Signed-off-by: Robb Romans <robb@linux.vnet.ibm.com> Signed-off-by: Josh Stone <jistone@redhat.com>
* Special case _stp_kretprobe_trampoline emission for -1Roland McGrath2009-06-301-7/+12
| | | | | | * translate.cxx (emit_symbol_data_done): Special case _stp_kretprobe_trampoline emission for -1, which is invalid in hex if host width > target width.
* Add shebangEugeniy Meshcheryakov2009-06-301-0/+1
|
* Make the file executableEugeniy Meshcheryakov2009-06-301-0/+0
|
* Update memory and ioscheduler tapset for 2.6.31Wenji Huang2009-06-292-2/+15
| | | | | * tapset/ioscheduler.stp (elv_next_request): Change to blk_peek_request. * tapset/memory.stp (vm.pagefault): Replace $write_access.
* An i386 kprobe needs regparm(0) to access args.Stan Cox2009-06-261-0/+17
| | | | * tapsets.cxx (probe_table::convert_probe): Add regparm for kprobe.
* Use_utrace_syscall_arg with sdt utrace probes to avoid i386 arg fetching ↵Stan Cox2009-06-261-13/+18
| | | | | | | | | problems. * tapsets.cxx (probe_table): Add is_uprobe and is_utrace. (probe_table::convert_probe): Use _utrace_syscall_arg. (sdt_var_expanding_visitor): Add utrace_probe. (sdt_var_expanding_visitor::visit_target_symbol): Use _utrace_syscall_arg.
* PR10335 systemtap.base/strftime.exp hangs.Mark Wielaard2009-06-261-20/+3
| | | | | | | | This only happened if there was a lot of cruft in the testsuite dir since expect wasn't "draining" the output of the spawned ls command for some reason. Work around it by just using tcl file globs to match. * testsuite/systemtap.base/strftime.exp: Test with glob and file exists.
* PR10323 Some ustack exelib.exp tests fail with prelinked shared libs.Mark Wielaard2009-06-252-6/+8
| | | | | | | | | | | | For shared libraries (.dynamic sections) we need the eh frame section address offset. This is the sh_addr if the shared library isn't prelinked (since the base load address is zero in that case), otherwise it is the module start address minus the bias (which also works for the non-prelinked case). * translate.cxx (get_unwind_data): Adjust eh_addr for module start and bias if module isn't absolute (has no relocations). * testsuite/systemtap.exelib/ustack.tcl: Accept all prelink tests.