diff options
author | Josh Stone <jistone@redhat.com> | 2009-04-20 16:43:15 -0700 |
---|---|---|
committer | Josh Stone <jistone@redhat.com> | 2009-04-20 16:43:15 -0700 |
commit | 462c90c3a1de9e8472bc84f9c9f8d5192aebd778 (patch) | |
tree | a89a0344aa35b5ebfb6ad4e9886aa60e4bb5261c /tapsets.cxx | |
parent | 1f329b5e2af4710a254e252529e8eee2fab4fd67 (diff) | |
download | systemtap-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.cxx | 11 |
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 |