summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-04-20 17:53:35 -0700
committerJosh Stone <jistone@redhat.com>2009-04-20 17:53:35 -0700
commit7a2ee7a2098a82f90057c70651b98f14337b3a8a (patch)
tree7c4883e3847d67d3758aac3ef548f9c9e80c1657
parentb68b2088c1b6e4c0eb4f18c161d3273fed33a385 (diff)
downloadsystemtap-steved-7a2ee7a2098a82f90057c70651b98f14337b3a8a.tar.gz
systemtap-steved-7a2ee7a2098a82f90057c70651b98f14337b3a8a.tar.xz
systemtap-steved-7a2ee7a2098a82f90057c70651b98f14337b3a8a.zip
Suppress more module-loading errors in @casts
Commit 462c90c3 did this for user modules, but it's needed for kernel modules too.
-rw-r--r--tapsets.cxx17
1 files changed, 14 insertions, 3 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 5a62d47f..06c0742c 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -5190,10 +5190,21 @@ void dwarf_cast_expanding_visitor::visit_cast_op (cast_op* e)
// kernel or kernel module target
if (! db.kern_dw)
{
- db.kern_dw = new dwflpp(s);
- db.kern_dw->setup_kernel(true);
+ dw = new dwflpp(s);
+ try
+ {
+ dw->setup_kernel(true);
+ }
+ catch (const semantic_error& er)
+ {
+ /* ignore and go to the next module */
+ delete dw;
+ continue;
+ }
+ db.kern_dw = dw;
}
- dw = db.kern_dw;
+ else
+ dw = db.kern_dw;
}
else
{