diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-09-30 12:28:36 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-09-30 12:28:36 -0400 |
commit | 1496e65102941e844f6218d3942ec019d0ada11c (patch) | |
tree | 9cab9a967c31702da55726fae67ac8fd6367d34f /tapsets.cxx | |
parent | caddc4616adfa27b018bc0417e8071df48d983a5 (diff) | |
parent | f12c75dd38c4990b9410410cc23e33004d3677ed (diff) | |
download | systemtap-steved-1496e65102941e844f6218d3942ec019d0ada11c.tar.gz systemtap-steved-1496e65102941e844f6218d3942ec019d0ada11c.tar.xz systemtap-steved-1496e65102941e844f6218d3942ec019d0ada11c.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
* 'master' of ssh://sources.redhat.com/git/systemtap:
Fix race condition in addr-map; simplify allocation logic
Don't crash when reporting an error if getting alternatives fails.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index b1475997..a5a62c7a 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -2241,7 +2241,8 @@ struct dwflpp { die = dwarf_formref_die (&attr_mem, &vardie); stringstream alternatives; - print_members(die,alternatives); + if (die != NULL) + print_members(die,alternatives); throw semantic_error("unable to find local '" + local + "'" + " near pc " + lex_cast_hex<string>(pc) + (alternatives.str() == "" ? "" : (" (alternatives:" + alternatives.str () + ")"))); @@ -2317,7 +2318,8 @@ struct dwflpp { die = dwarf_formref_die (&attr_mem, vardie); stringstream alternatives; - print_members(die,alternatives); + if (die != NULL) + print_members(die,alternatives); throw semantic_error("unable to find return value" " near pc " + lex_cast_hex<string>(pc) + (alternatives.str() == "" ? "" : (" (alternatives:" + alternatives.str () + ")"))); |