diff options
author | Jim Keniston <jkenisto@us.ibm.com> | 2008-04-18 16:21:18 -0700 |
---|---|---|
committer | Jim Keniston <jkenisto@us.ibm.com> | 2008-04-18 16:21:18 -0700 |
commit | 5f0a03a685a11bda62d69588f39e3fc26375d180 (patch) | |
tree | 24b6b791715c6032dd3155bc3644ba5ad3c6d3e7 /hash.cxx | |
parent | 946d18f91669c0fbee36124f0bc06d7cf56aecdf (diff) | |
download | systemtap-steved-5f0a03a685a11bda62d69588f39e3fc26375d180.tar.gz systemtap-steved-5f0a03a685a11bda62d69588f39e3fc26375d180.tar.xz systemtap-steved-5f0a03a685a11bda62d69588f39e3fc26375d180.zip |
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.
Diffstat (limited to 'hash.cxx')
-rw-r--r-- | hash.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -97,6 +97,21 @@ find_hash (systemtap_session& s, const string& script) h.add(s.merge); // '-M' h.add(s.timing); // '-t' h.add(s.prologue_searching); // '-P' + h.add(s.ignore_vmlinux); // --ignore-vmlinux + h.add(s.ignore_dwarf); // --ignore-dwarf + h.add(s.consult_symtab); // --kelf, --kmap + if (!s.kernel_symtab_path.empty()) // --kmap + { + h.add(s.kernel_symtab_path); + if (stat(s.kernel_symtab_path.c_str(), &st) == 0) + { + // NB: stat of /proc/kallsyms always returns size=0, mtime=now... + // which is a good reason to use the default /boot/System.map-2.6.xx + // instead. + h.add(st.st_size); + h.add(st.st_mtime); + } + } for (unsigned i = 0; i < s.macros.size(); i++) h.add(s.macros[i]); |