summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-04-20 16:43:15 -0700
committerJosh Stone <jistone@redhat.com>2009-04-20 16:43:15 -0700
commit462c90c3a1de9e8472bc84f9c9f8d5192aebd778 (patch)
treea89a0344aa35b5ebfb6ad4e9886aa60e4bb5261c /tapsets.cxx
parent1f329b5e2af4710a254e252529e8eee2fab4fd67 (diff)
downloadsystemtap-steved-462c90c3a1de9e8472bc84f9c9f8d5192aebd778.tar.gz
systemtap-steved-462c90c3a1de9e8472bc84f9c9f8d5192aebd778.tar.xz
systemtap-steved-462c90c3a1de9e8472bc84f9c9f8d5192aebd778.zip
Suppress module-loading errors in @casts
If a @cast encounters a module that it can't load, it should just go on to the next module instead of throwing an exception. If there is no next module, we'll get a better "type not found" exception anyway.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 01c838d9..ee799e74 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -5148,7 +5148,16 @@ void dwarf_cast_expanding_visitor::visit_cast_op (cast_op* e)
if (db.user_dw.find(module) == db.user_dw.end())
{
dw = new dwflpp(s);
- dw->setup_user(module);
+ try
+ {
+ dw->setup_user(module);
+ }
+ catch (const semantic_error& er)
+ {
+ /* ignore and go to the next module */
+ delete dw;
+ continue;
+ }
db.user_dw[module] = dw;
}
else