+ 2008-05-06 Jim Keniston <jkenisto@us.ibm.com>
+
+ PR 4311 - Function boundary tracing without debuginfo: Phase II
+ * stapfuncs.5.in: Added sections on CPU REGISTERS and
+ NUMBERED FUNCTION ARGUMENTS.
+
+ 2008-05-05 Jim Keniston <jkenisto@us.ibm.com>
+
+ PR 4311 - Function boundary tracing without debuginfo: Phase II
+ * runtime/regs.c: Added register name:value lookup facility.
+ Added support for register and arg lookup for i386 and x86_64.
+ * tapset/{i686,x86_64}/registers.stp: New: support for register
+ and arg lookup.
+ * tapsets.cxx, translate.cxx: Added regparm field to struct
+ context.
+ * tapset/nd_syscall.stp: syscall.stp migrating toward numbered
+ args rather than named args.
+
+ 2008-04-18 Jim Keniston <jkenisto@us.ibm.com>
+
+ PR 4311 - Function boundary tracing without debuginfo: Phase I
+ * tapsets.cxx: Major rework of dwflpp, dwarf_query, and related
+ code to make do with elf info if dwarf info is absent, or
+ (in the case of vmlinux) make do with a System.map-style
+ symbol table if even the elf file is absent.
+ * main.cxx: Use getopt_long instead of getopt. Added --kelf,
+ --kmap, --ignore-vmlinux, and --ignore-dwarf.
+ * hash.cxx, session.h, stap.1.in: Added --kelf, --kmap,
+ --ignore-vmlinux, and --ignore-dwarf.
+ * testsuite/{semok,semko}/nodwf*.stp
+2008-05-05 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 444886. From <crquan@gmail.com>:
+ * tapsets.cxx, translate.cxx: Add .../build/... to default debuginfo
+ path, to ease search for hand-built kernels.
+
+2008-05-01 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6474
+ * configure.ac (--enable-pie): Add default option.
+ * Makefile.am (stap* binaries): Use -fpie/-z relro/-z now as
+ applicable.
+ * configure, aclocal.m4, Makefile.in, doc/Makefile.in: Regenerated.
+
+2008-04-30 Masami Hiramatsu <mhiramat@redhat.com>
+
+ PR 6008
+ * main.cxx (main): Increase the limitation of buffer size to 4095MB.
+ * staprun.8.in: Ditto.
+
+2008-04-29 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6466
+ * elaborate.cxx
+ (dead_stmtexpr_remover): Expand scope to kill far more
+ side-effect-free statemnets, including if/for/foreach.
+ (semantic_pass_opt4): Warn on elided function/probe bodies.
+ (typeresolution_info::visit_target_symbol): Dump parse tree of
+ resolution-challenged functions/probes.
+ (*): Adapt to probe->body being a statement*
+ rather than a block*.
+ * tapsets.cxx (*): Ditto.
+ * staptree.cxx (block::block ctor): New cons constructor.
+ * staptree.h: Corresponding changes.
+
+2008-04-29 David Smith <dsmith@redhat.com>
+
+ * tapsets.cxx (utrace_derived_probe_group::emit_probe_decl): Added
+ death event handlers to ensure that for every utrace_attach there
+ is a corresponding utrace_detach.
+ (utrace_derived_probe_group::emit_module_decls): Ditto.
+
+2008-04-28 Frank Ch. Eigler <fche@elastic.org>
+
+ * translate.cxx (translate_pass): Don't #define TEST_MODE.
+
+2008-04-26 Frank Ch. Eigler <fche@elastic.org>
+
+ * tapsets.cxx (common_probe_entryfn_prologue): Undo
+ clear of overload-related context vars; add explanation why.
+
+2008-04-25 Frank Ch. Eigler <fche@elastic.org>
+
+ * systemtap.spec.in: Simplify configuration defaults.
+
+2008-04-29 David Smith <dsmith@redhat.com>:ChangeLog
+
+2008-04-25 David Smith <dsmith@redhat.com>
+
+ PR 6455.
+ * tapsets.cxx (mark_builder::build): Handles markers with no
+ format string.
+
+2008-04-24 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6454.
+ * main.cxx (printscript): Avoid string truncation heuristics, and
+ also avoid plain probe::printsig. Hold nose and dig down into
+ raw location lists instead.
+
+2008-04-24 Will Cohen <wcohen@redhat.com>
+
+ * aclocal.m4: Regenerated.
+ * Makefile.am (example/*): Moved to testsuite/systemtap.examples.
+ * Makefile.in: Regenerated.
+
+2008-04-23 Frank Ch. Eigler <fche@elastic.org>
+
+ From: Srinivasa DS <srinivasa@in.ibm.com>
+ * tapsets.cxx (blacklisted_p): Blacklist more init/exit sections.
+
+2008-04-23 Frank Ch. Eigler <fche@elastic.org>
+
+ * tapsets.cxx (common_probe_entryfn_prologue): Clear
+ overload-related context vars.
+
+2008-04-22 hunt <hunt@redhat.com>
+
+ * staprun.8.in: Add documentation for -d option.
+
+2008-04-22 David Smith <dsmith@redhat.com>
+
+ * tapsets.cxx (utrace_derived_probe_group::emit_module_decls):
+ Removed debug statements.
+
+2008-04-18 David Smith <dsmith@redhat.com>
+
+ * tapsets.cxx (struct utrace_builder): Added exec probes.
+ (utrace_derived_probe_group::emit_probe_decl): Ditto.
+ (utrace_derived_probe_group::emit_module_decls): Ditto.
+ (register_standard_tapsets): Ditto.
+ * stapprobes.5.in: Added information about exec probes.
+ * NEWS: Added information about utrace probes.
+
+ * stapprobes.5.in: Added information about utrace probes.
+
+2008-04-17 Josh Stone <joshua.i.stone@intel.com>
+
+ * tapsets.cxx (build_blacklist): Fix regexps for atomics.
+ * vim/syntax/stap.vim: Recognize the 'limit' keyword and script arguments,
+ allow '$' in variable names, and highlight $target variables.
+
+2008-04-17 David Smith <dsmith@redhat.com>
+
+ * tapsets.cxx (utrace_builder::build): Make sure that the PATH of
+ 'process("PATH")' probes is an absolute path.
+ (utrace_derived_probe_group::emit_module_decls): Made calls to
+ utrace probe handler functions conditional on which types of
+ utrace probes are going to be output.
+
+2008-04-16 Frank Ch. Eigler <fche@elastic.org>
+
+ * tapsets.cxx (task_finder_derived_probe): Add dummy constructor
+ for old (RHEL4) gcc compatibility.
+
+2008-04-16 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6417: From Srinivasa DS <srinivasa@in.ibm.com>:
+ * tapsets.cxx (build_blacklist): Extend.
+
+2008-04-15 David Smith <dsmith@redhat.com>
+
+ * session.h (struct systemtap_session): Added utrace_derived_probe
+ group and task_finder_derived_probe_group members.
+ * elaborate.cxx (systemtap_session::systemtap_session): Added
+ initialization of utrace_derived_probes and
+ task_finder_derived_probes.
+ * tapsets.cxx (struct task_finder_derived_probe_group): New
+ derived_probe_group to handle task_finder framework.
+ (struct utrace_derived_probe_group): New derived_probe_group to
+ handle utrace probes.
+
+2008-04-15 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6405 cont'd.
+ * Makefile.am (AM_CFLAGS): Remove -Wshadow, as it triggers for
+ new stapio (modname global vs. dwfl headers).
+
+2008-04-15 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6405
+ * buildrun.cxx (compile_pass): Add STAPCONF_MODULE_NSECTIONS.
+
+2008-04-14 David Smith <dsmith@redhat.com>
+
+ * elaborate.h (struct derived_probe_group): Removed
+ emit_module_header virtual function.
+ * translate.cxx (c_unparser::emit_common_header): Removed calls to
+ emit_module_header function.
+ * tapsets.cxx (be_derived_probe>): Removed emit_module_header function.
+ (struct timer_derived_probe_group): Ditto.
+ (struct profile_derived_probe_group): Ditto.
+ (struct procfs_derived_probe_group): Ditto.
+ (struct hrtimer_derived_probe_group): Ditto.
+ (struct perfmon_derived_probe_group): Ditto.
+ (dwarf_derived_probe_group::emit_module_decls): Moved kernel check
+ back from deleted emit_module_header function.
+ (uprobe_derived_probe_group::emit_module_decls): Ditto.
+ (mark_derived_probe_group::join_group): Moved marker
+ kernel check (to a new embedded code section) from deleted
+ emit_module_header function.
+
+2008-04-14 Frank Ch. Eigler <fche@elastic.org>
+
+ * Makefile.am (stapio_*): Become able to link/compile against
+ bundled elfutils.
+ * Makefile.in: Regenerated.
+
+2008-04-09 Martin Hunt <hunt@dragon>
+
+ * buildrun.cxx (run_pass): Remove unused "-d" option
+ passed to staprun.
+
+ * translate.cxx (emit_symbol_data): When available,
+ grab symbols from debuginfo instead of /proc/kallsyms.
+
+2008-04-11 David Smith <dsmith@redhat.com>
+
+ * elaborate.h (struct derived_probe_group): Added
+ emit_module_header virtual function.
+ * translate.cxx (c_unparser::emit_common_header): Calls each probe
+ group's emit_module_header function.
+ (translate_pass): Moved inclusion of linux/marker.h to
+ mark_derived_probe_group::emit_module_header().
+ * tapsets.cxx (struct be_derived_probe_group): Added empty
+ emit_module_header function.
+ (struct timer_derived_probe_group): Ditto.
+ (struct profile_derived_probe_group): Ditto.
+ (struct procfs_derived_probe_group): Ditto.
+ (struct hrtimer_derived_probe_group): Ditto.
+ (struct perfmon_derived_probe_group): Ditto.
+ (dwarf_derived_probe_group::emit_module_header): Moved kprobes
+ kernel check from emit_module_decls() to here.
+ (uprobe_derived_probe_group::emit_module_header): Moved uprobe
+ kernel check from emit_module_decls() to here.
+ (uprobe_derived_probe_group::emit_module_decls): Moved uprobe
+ kernel check to emit_module_header().
+ (mark_derived_probe_group::emit_module_header): Moved marker
+ kernel check from emit_module_decls and translate_pass() to here.
+ (uprobe_derived_probe_group::emit_module_decls): Moved marker
+ kernel check to emit_module_header().
+
+2008-04-10 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 2949.
+ * session.h (listing_mode): New field.
+ * main.cxx (main): Test it. Enjoy it.
+ (printscript): Do it.
+ (usage): Document it.
+ * stap.1.in, stapex.5.in: Ditto.
+ * elaborate.cxx (print_error): Disable error messages in listing mode.
+
+2008-04-10 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6393 cont'd.
+ * Makefile.am: Also copy RadeonHD.am fragment to force
+ git_version.h regeneration at every make, and also special
+ tagging for "make dist". Thanks <ndim>.
+
+2008-04-10 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6393.
+ * git_version.sh: New file, copied from radeonhd.
+ * configure.ac: No longer generate $builddir/SNAPSHOT.
+ * Makefile.am: Generate $builddir/git_version.h.
+ (EXTRA_DIST): Add git_version.h and git_version.sh.
+ * main.cxx (version): Print generated GIT_MESSAGE therefrom.
+ * Makefile.in, configure: Regenerated.
+
+2008-04-09 David Smith <dsmith@redhat.com>
+
+ * .gitignore: Added more files to ignore.
2008-04-04 Masami Hiramatsu <mhiramat@redhat.com>
<< " -c CMD start the probes, run CMD, and exit when it finishes"
<< endl
<< " -x PID sets target() to PID" << endl
+ << " -d OBJECT add unwind/symbol data for OBJECT file";
+ if (s.unwindsym_modules.size() == 0)
+ clog << endl;
+ else
+ clog << ", in addition to" << endl;
+ {
+ vector<string> syms (s.unwindsym_modules.begin(), s.unwindsym_modules.end());
+ for (unsigned i=0; i<syms.size(); i++)
+ clog << " " << syms[i] << endl;
+ }
+ clog
<< " -t collect probe timing information" << endl
#ifdef HAVE_LIBSQLITE3
- << " -q generate information on tapset coverage"
+ << " -q generate information on tapset coverage" << endl
#endif /* HAVE_LIBSQLITE3 */
+ << " --kelf make do with symbol table from vmlinux" << endl
+ << " --kmap[=FILE]" << endl
+ << " make do with symbol table from nm listing" << endl
+ << " --ignore-vmlinux" << endl
+ << " for testing, pretend vmlinux can't be found" << endl
+ << " --ignore-dwarf" << endl
+ << " for testing, pretend vmlinux and modules lack debug info"
<< endl
;
// -d: dump safety-related external references
while (true)
{
+ int long_opt;
+ #define LONG_OPT_KELF 1
+ #define LONG_OPT_KMAP 2
+ #define LONG_OPT_IGNORE_VMLINUX 3
+ #define LONG_OPT_IGNORE_DWARF 4
// NB: also see find_hash(), usage(), switch stmt below, stap.1 man page
- int grc = getopt (argc, argv, "hVMvtp:I:e:o:R:r:m:kgPc:x:D:bs:uqwl:d:");
+ static struct option long_options[] = {
+ { "kelf", 0, &long_opt, LONG_OPT_KELF },
+ { "kmap", 2, &long_opt, LONG_OPT_KMAP },
+ { "ignore-vmlinux", 0, &long_opt, LONG_OPT_IGNORE_VMLINUX },
+ { "ignore-dwarf", 0, &long_opt, LONG_OPT_IGNORE_DWARF },
+ { NULL, 0, NULL, 0 }
+ };
- int grc = getopt_long (argc, argv, "hVMvtp:I:e:o:R:r:m:kgPc:x:D:bs:uqw",
++ int grc = getopt_long (argc, argv, "hVMvtp:I:e:o:R:r:m:kgPc:x:D:bs:uqwl:d:",
+ long_options, NULL);
if (grc < 0)
break;
switch (grc)
usage (s, 0);
break;
+ case 'l':
+ s.listing_mode = true;
+ s.last_pass = 2;
+ if (have_script)
+ {
+ cerr << "Only one script can be given on the command line."
+ << endl;
+ usage (s, 1);
+ }
+ cmdline_script = string("probe ") + string(optarg) + " {}";
+ have_script = true;
++
+ case 0:
+ switch (long_opt)
+ {
+ case LONG_OPT_KELF:
+ s.consult_symtab = true;
+ break;
+ case LONG_OPT_KMAP:
+ // Leave s.consult_symtab unset for now, to ease error checking.
+ if (!s.kernel_symtab_path.empty())
+ {
+ cerr << "You can't specify multiple --kmap options." << endl;
+ usage(s, 1);
+ }
+ if (optarg)
+ s.kernel_symtab_path = optarg;
+ else
+ #define PATH_TBD string("__TBD__")
+ s.kernel_symtab_path = PATH_TBD;
+ break;
+ case LONG_OPT_IGNORE_VMLINUX:
+ s.ignore_vmlinux = true;
+ break;
+ case LONG_OPT_IGNORE_DWARF:
+ s.ignore_dwarf = true;
+ break;
+ default:
+ cerr << "Internal error parsing command arguments." << endl;
+ usage(s, 1);
+ }
break;
default: