summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-03-17 13:09:49 -0400
committerDave Brolley <brolley@redhat.com>2009-03-17 13:09:49 -0400
commit2855f6351e26f51953af11b17c4499df4d3d3441 (patch)
tree2fa84dd226f944ae29e0dae5e9c192a0f0c0a202 /translate.cxx
parent9b6d8bd0d7a6f80a613b7c609ff1d71ddfed009b (diff)
parent67aada05e69728327de1c7b8aeeaa0193668bed8 (diff)
downloadsystemtap-steved-2855f6351e26f51953af11b17c4499df4d3d3441.tar.gz
systemtap-steved-2855f6351e26f51953af11b17c4499df4d3d3441.tar.xz
systemtap-steved-2855f6351e26f51953af11b17c4499df4d3d3441.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx
index f4c28536..377a11fb 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -4700,6 +4700,15 @@ dump_unwindsyms (Dwfl_Module *m,
c->output << "static struct _stp_module _stp_module_" << stpmod_idx << " = {\n";
c->output << ".name = " << lex_cast_qstring (modname) << ", \n";
+
+ // Get the canonical path of the main file for comparison at runtime.
+ // When given directly by the user through -d or in case of the kernel
+ // name and path might differ. path should be used for matching.
+ const char *mainfile;
+ dwfl_module_info (m, NULL, NULL, NULL, NULL, NULL, &mainfile, NULL);
+ mainfile = canonicalize_file_name(mainfile);
+ c->output << ".path = " << lex_cast_qstring (mainfile) << ",\n";
+
c->output << ".dwarf_module_base = 0x" << hex << base << dec << ", \n";
if (unwind != NULL)