summaryrefslogtreecommitdiffstats
path: root/session.h
diff options
context:
space:
mode:
authorfche <fche>2006-12-19 22:00:15 +0000
committerfche <fche>2006-12-19 22:00:15 +0000
commit7e41d3dc4003b7e05731173f6b22cc9e1b05f057 (patch)
treef552fed50ac5d02ba2e56b588f73ef0dd48382b8 /session.h
parent642da0daffeeecbcfa1aa78b6d95b5cfa90827d4 (diff)
downloadsystemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.tar.gz
systemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.tar.xz
systemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.zip
2006-12-19 Frank Ch. Eigler <fche@redhat.com>
PR 3522. * tapsets.cxx (dwflpp::emit_address): Call _stp_module_relocate only once per session. Error message cleanup: duplicate elimination etc. * session.h (saved_errors): Store a set of 'em. (num_errors): Return set size. Remove old numeric field. Update all callers. * elaborate.cxx (systemtap_session::print_errors): Print each encountered message just once. * staptree (semantic_error): Make msg2 writeable. Add a chain field. * tapsets.cxx (*var_expanding*:visit_target_symbol): Set saved semantic_error's chain field. * elaborate.cxx (register_library_aliases, visit_foreach_loop, visit_functioncall, derive_probes): Plop "while: ..." error message prefix/suffix right into the semantic_error message string. * parse.cxx (lexer::scan): Identify erroneous token better in error message for unresolvable $N/@M command line args. * util.h (lex_cast_hex): Use std::hex, not std::ios::hex. 2006-12-19 Frank Ch. Eigler <fche@redhat.com> PR 3522. * buildok/twentyfive.stp: New test for static $var access.
Diffstat (limited to 'session.h')
-rw-r--r--session.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/session.h b/session.h
index 0a0bfb8a..ce977471 100644
--- a/session.h
+++ b/session.h
@@ -14,6 +14,7 @@
#include <iostream>
#include <sstream>
#include <map>
+#include <set>
extern "C" {
#include <elfutils/libdw.h>
@@ -139,7 +140,8 @@ struct systemtap_session
Dwarf_Addr kprobes_text_start;
Dwarf_Addr kprobes_text_end;
- unsigned num_errors;
+ std::set<std::string> seen_errors;
+ unsigned num_errors () { return seen_errors.size(); }
// void print_error (const parse_error& e);
void print_error (const semantic_error& e);