summaryrefslogtreecommitdiffstats
path: root/hash.cxx
diff options
context:
space:
mode:
authorJim Keniston <jkenisto@us.ibm.com>2008-04-18 16:21:18 -0700
committerJim Keniston <jkenisto@us.ibm.com>2008-04-18 16:21:18 -0700
commit5f0a03a685a11bda62d69588f39e3fc26375d180 (patch)
tree24b6b791715c6032dd3155bc3644ba5ad3c6d3e7 /hash.cxx
parent946d18f91669c0fbee36124f0bc06d7cf56aecdf (diff)
downloadsystemtap-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.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/hash.cxx b/hash.cxx
index d05be268..c41600d2 100644
--- a/hash.cxx
+++ b/hash.cxx
@@ -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]);