| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* staprun_funcs.c (check_path): Small security fix.
|
|
|
|
| |
Thanks to Jim for fixing typos and grammar.
|
| |
|
|
|
|
|
| |
* symbols.c (send_module): Simplify and use new send_data() function to keep
longword alignment.
|
| |
|
|
|
|
|
|
|
| |
2008-01-12 Frank Ch. Eigler <fche@elastic.org>
PR 5603 horrible hack.
* symbols.c (do_kernel_symbols): Make buf[256] instead of [128].
|
|
|
|
|
|
|
| |
PR5368
* relay_old.c (init_oldrelayfs): Don't start threads
if load_only.
* relay.c (init_relayfs): Ditto.
|
|
|
|
|
| |
* mainloop.c (stp_main_loop): Bump recvbuf to 8196 for
compatibility with old transport.
|
|
|
|
|
|
| |
PR5218
* stapio.c (main): Set initialized properly when
attached.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes to separate the symbols from the command channel.
* cap.c (init_cap): Add CAP_DAC_OVERRIDE.
* staprun.h: Change init_ctl_channel prototype.
* ctl.c (init_ctl_channel): Modify to open either
a command or symbol channel. Use ".cmd" and ".symbols"
as the new names.
* mainloop.c (init_stapio): Call init_ctl_channel(0);
* staprun.c (cleanup): Call stop_symbol_thread().
(main): Call start_symbol_thread().
* staprun_funcs.c (handle_symbols): Make a thread.
(start_symbol_thread): New.
(stop_symbol_thread): New.
|
|
|
|
|
| |
* staprun.c (main): Move checks for init_cap and getuid
from just before command line argument parsing to just after.
|
|
|
|
|
|
|
| |
* common.c (set_clexec): New.
* staprun.h: Add prototype for set_clexec.
* relay*.c, ctl.c: Call set_clexec after
file opens.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes
* buildrun.cxx: Add uprobes_enabled() and make_uprobes().
Factor run_make_cmd() out of compile_pass().
* buildrun.h: Add uprobes_enabled and make_uprobes decls.
* tapsets.cxx: Do correct #include for modprobed uprobes.ko;
set need_uprobes in pass 2.
* session.h: Add need_uprobes
* runtime/staprun/common.c: Add -u option -> need_uprobes
* runtime/staprun/staprun_funcs.c: Generalize insert_module()
to support inserting uprobes.ko.
* runtime/staprun/staprun.c: Add enable_uprobes(). insert_module
call becomes insert_stap_module().
* runtime/staprun/staprun.h: Reflect insert_module() and
need_uprobes changes
* runtime/uprobes/*.[c,h]: uprobes is built as a module,
rather than included into the source of the stap-generated
module.
* runtime/uprobes/Makefile: Added
|
|
|
|
|
|
|
|
|
| |
* ctl.c (init_ctl_channel): Return 1 if the ctl file opened
was for the old relayfs transport.
* mainloop.c (init_stapio): Don't call using_old_transport().
Use the return of init_ctl_channel() instead.
(using_old_transport): Deleted.
|
|
|
|
|
|
| |
* mainloop.c (start_cmd): Set the priority to
forked processes back to normal.
(system_cmd): Ditto.
|
|
|
|
|
| |
* mainloop.c (start_cmd): Set the priority to
forked processes back to normal.
|
|
|
|
|
| |
* mainloop.c (start_cmd): Send SIGINT to target_cmd,
not stapio.
|
|
|
|
|
|
| |
From Lai Jiangshan <laijs@cn.fujitsu.com>
* common.c (parse_args): Make sure the '-c' and '-x' options can't
be specified together.
|
|
|
|
| |
* staprun.c (main): Quit if effective uid is not root.
|
|
|
|
|
|
| |
PR4736
* staprun.c (cleanup): Set priority back to normal
before removing module.
|
|
|
|
| |
* stap_merge.tcl: New.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge from setuid-branch. Changes also by Martin Hunt
<hunt@redhat.com>.
* staprun.c (init_staprun): Drop CAP_SYS_ADMIN when we're done
with it.
(main): Calls parse_modpath instead of path_parse_modname. Just
call parse_modpath with argv[optind]. Let it allocate and set
modpath and modname. If no modulename was given, display usage
and exit. Drop CAP_SYS_NICE when we're done with it. Set
atexit(exit_cleanup) so cleanup always gets called and modules get
removed. Call handle_symbols.
(run_stapio): Set argv[0] to stapio so that it executes as itself
instead of staprun.
(cleanup): Only do cleanups once and only try to remove module
when appropriate.
(exit_cleanup): New. Calls cleanup().
(mountfs): Sets uid to root before making directory and then
restores uid.
(setup_ctl_channel): Uses DEBUGFS define and improved
error message.
(setup_relayfs): Ditto.
(setup_oldrelayfs): Uses DEBUGFS and RELAYFS defines.
(run_stp_check): Replaced by mountfs().
(mountfs): New function. Replaces an external script with C code.
(init_staprun): Calls mountfs() instead of run_stp_check().
* staprun.h: Renamed path_parse_modname to parse_modpath. Added
MODULE_NAME_LEN define. Added [_][p]err macros. Removed
VERSION_CMD.
* mainloop.c (cleanup_and_exit): Make sure initialized is 2
before exiting with code 2.
(stp_main_loop): Set initialized to 2 when STP_TRANSPORT
is received. Call cleanup_and_exit() with proper status.
(start_cmd): exit 1 instead of -1.
(system_cmd): Ditto.
(init_staprun): Renamed init_stapio.
(cleanup_and_exit): Set exit status.
* cap.c: New file.
* common.c: New file.
* stapio.c: New file.
* staprun_funcs.c: New file.
* Makefile: Removed.
* symbols.c (get_sections): Move the filter code up so that
uninteresting section names are filtered out before
attempting to open them.
(do_kernel_symbols): Better detect overfow conditions and realloc
new space.
(do_module): After sending all modules, send a null message to
indicate we are finished.
* ctl.c (init_ctl_channel): When attempting to attach, if the
control channel doesn't exist, print a better error message.
* relay_old.c (init_oldrelayfs): Errors out if
open_relayfs_files() couldn't open any files.
PR 4795
* mainloop.c (send_request): Fixed buffer overflow check.
* staprun.h: Added buffer overflow checking versions of
strcpy/sprintf/snprintf.
* common.c (path_parse_modname): Checks for overflows on
strcpy/sprintf/snprintf.
(read_buffer_info): Ditto.
* ctl.c (init_ctl_channel): Ditto.
* relay.c (init_relayfs): Ditto.
* relay_old.c (open_relayfs_files): Ditto.
(init_oldrelayfs): Ditto.
* staprun_funcs.c (insert_module): Ditto.
(check_path): Ditto.
* symbols.c (get_sections): Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge from setuid-branch. Changes also by Martin Hunt
<hunt@redhat.com>.
* staprun.c (init_staprun): Drop CAP_SYS_ADMIN when we're done
with it.
(main): Calls parse_modpath instead of path_parse_modname. Just
call parse_modpath with argv[optind]. Let it allocate and set
modpath and modname. If no modulename was given, display usage
and exit. Drop CAP_SYS_NICE when we're done with it. Set
atexit(exit_cleanup) so cleanup always gets called and modules get
removed. Call handle_symbols.
(run_stapio): Set argv[0] to stapio so that it executes as itself
instead of staprun.
(cleanup): Only do cleanups once and only try to remove module
when appropriate.
(exit_cleanup): New. Calls cleanup().
(mountfs): Sets uid to root before making directory and then
restores uid.
(setup_ctl_channel): Uses DEBUGFS define and improved
error message.
(setup_relayfs): Ditto.
(setup_oldrelayfs): Uses DEBUGFS and RELAYFS defines.
(run_stp_check): Replaced by mountfs().
(mountfs): New function. Replaces an external script with C code.
(init_staprun): Calls mountfs() instead of run_stp_check().
* staprun.h: Renamed path_parse_modname to parse_modpath. Added
MODULE_NAME_LEN define. Added [_][p]err macros. Removed
VERSION_CMD.
* mainloop.c (cleanup_and_exit): Make sure initialized is 2
before exiting with code 2.
(stp_main_loop): Set initialized to 2 when STP_TRANSPORT
is received. Call cleanup_and_exit() with proper status.
(start_cmd): exit 1 instead of -1.
(system_cmd): Ditto.
(init_staprun): Renamed init_stapio.
(cleanup_and_exit): Set exit status.
* cap.c: New file.
* common.c: New file.
* stapio.c: New file.
* staprun_funcs.c: New file.
* Makefile: Removed.
* symbols.c (get_sections): Move the filter code up so that
uninteresting section names are filtered out before
attempting to open them.
(do_kernel_symbols): Better detect overfow conditions and realloc
new space.
(do_module): After sending all modules, send a null message to
indicate we are finished.
* ctl.c (init_ctl_channel): When attempting to attach, if the
control channel doesn't exist, print a better error message.
* relay_old.c (init_oldrelayfs): Errors out if
open_relayfs_files() couldn't open any files.
PR 4795
* mainloop.c (send_request): Fixed buffer overflow check.
* staprun.h: Added buffer overflow checking versions of
strcpy/sprintf/snprintf.
* common.c (path_parse_modname): Checks for overflows on
strcpy/sprintf/snprintf.
(read_buffer_info): Ditto.
* ctl.c (init_ctl_channel): Ditto.
* relay.c (init_relayfs): Ditto.
* relay_old.c (open_relayfs_files): Ditto.
(init_oldrelayfs): Ditto.
* staprun_funcs.c (insert_module): Ditto.
(check_path): Ditto.
* symbols.c (get_sections): Ditto.
|
|
|
|
|
| |
* relay.c (init_relayfs): Fixed a buffer size bug introduced by
the last change.
|
|
|
|
|
|
| |
* relay.c (init_relayfs): Make sure buffers are big enough to hold
a full path.
* relay_old.c (init_oldrelayfs): Ditto.
|
|
|
|
|
|
| |
* ctl.c (read_buffer_info): Make sure buffer is big enough to hold
a full path.
(init_ctl_channel): Ditto.
|
|
|
|
|
| |
* symbols.c (get_sections): Set data pointer to the lowest address
of any data section.
|
| |
|
|
|
|
| |
* relay.c (init_relayfs): Send message to check for bulkmode.
|
|
|
|
|
|
| |
* stap_merge.c (main): Add verbose option. Will realloc
buffer if current size is too small. Check return codes
from writes so gcc won't complain.
|
|
|
|
|
| |
* relay_old.c (open_relayfs_files): Add support for
output file names (-o) with bulk (relayfs) mode.
|
|
|
|
|
|
|
| |
* mainloop.c (cleanup_and_exit): Disable signals
while exiting.
(fatal_handler): Use return values from write() to
avoid warnings.
|
|
|
|
| |
* mainloop.c (cleanup_and_exit): Fix typo.
|
|
|
|
| |
* mainloop.c (init_staprun): Change dbug() call.
|
|
|
|
|
| |
* relay.c: Fix ppoll() call and some race conditions involving
signals.
|
|
|
|
|
| |
* relay.c (reader_thread): Set timeout for streaming to
200ms.
|
|
|
|
|
| |
* relay.c (reader_thread): For bulk mode, set timeout to NULL
so ppoll never times out.
|
|
|
|
|
| |
* relay.c (ppoll): Add a compatibility function for
glibc < 2.4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Signal handler cleanup.
* mainloop.c (fatal_handler): New. Cleanly handle
unexpected fatal signals.
(setup_main_signals): New. Set signals once mainloop
is entered.
(setup_signals): New. Block certain signals during initialization.
Set handler for fatal signals.
* relay.c (reader_thread): Use ppoll(). Terminate on
SIGUSR2 after reading any remaining data.
(close_relayfs): Remove sleep hack. Send SIGUSR2 to all threads.
Runtime debug messages.
* staprun.h: Change dbug() to accept a debuglevel and
enable it.
* *.c: Modify dbug() calls.
|
|
|
|
|
|
| |
Patch from David Smith
* mainloop.c (stp_main_loop): Properly handle write()
return value. Fixes build problem with some compilers.
|
|
|
|
|
| |
* relay.c (close_relayfs): Give threads some time to
run before closing.
|
|
|
|
|
|
| |
* stp_merge.c (main): Remove extra newline in output.
* stap_merge.c: Renamed from stp_merge.c.
* Makefile: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* relay_old.c (close_oldrelayfs): If just detaching, call
pthread_cancel.
(open_relayfs_files): Just return 0 if relay_fd[cpu] not opened.
(init_oldrelayfs): Scan percpu files to calculate ncpus.
* mainloop.c (init_staprun): Call old transport init when necessary.
(cleanup_and_exit): Ignore signals when cleaning up.
* ctl.c (read_buffer_info): For old transport, need to read transport
parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* mainloop.c (run_stp_check): Just use system() call.
(init_staprun): Remove _stp_pid module parameter.
(cleanup_and_exit): If closed==2, just exit without removing module.
(driver_poll): Remove. We no longer require stap running.
(_stp_main_loop): Remove call to driver_poll.
* ctl.c (init_ctl_channel): Don't put files in systemtap_pid,
revert back to systemtap/modulename.
* relay.c: Revert back to systemtap/modulename paths.
* relay_old.c: Ditto.
* staprun.c: Add -L and -A args.
|
|
|
|
|
|
| |
* symbols.c (send_module): If send returns < 0 then
cleanup and exit.
(do_kernel_symbols): Ditto.
|
|
|
|
|
| |
* staprun.h (err): Define.
* symbols.c (get_sections): More overflow checking.
|
|
|
|
|
| |
* symbols.c (get_sections): Filter out .gnu.linkonce.* sections
except for .gnu.linkonce.this_module.
|
| |
|