When adding multiple SimObjects to --debug-ignore, either separating the values with
a colon or adding multiple --debug-ignore flags, the previous code only ignored the
last SimObject in the list. This changeset adds and uses new `ObjectMatch::add` and
`Logger::addIgnore` methods to make the functionality of the flag consistent with
its description.
Change-Id: Ib6967a48611ea59a211f81af2a970c4de429b1be
Signed-off-by: Isaac Sánchez Barrera <isaac.sanchez@bsc.es>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17488
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
setExpression(expr);
}
+void
+ObjectMatch::add(const ObjectMatch &other)
+{
+ tokens.insert(tokens.end(), other.tokens.begin(), other.tokens.end());
+}
+
void
ObjectMatch::setExpression(const string &expr)
{
public:
ObjectMatch();
ObjectMatch(const std::string &expression);
+ void add(const ObjectMatch &other);
void setExpression(const std::string &expression);
void setExpression(const std::vector<std::string> &expression);
bool match(const std::string &name) const
/** Set objects to ignore */
void setIgnore(ObjectMatch &ignore_) { ignore = ignore_; }
+ /** Add objects to ignore */
+ void addIgnore(const ObjectMatch &ignore_) { ignore.add(ignore_); }
+
virtual ~Logger() { }
};
{
ObjectMatch ignore(expr);
- Trace::getDebugLogger()->setIgnore(ignore);
+ Trace::getDebugLogger()->addIgnore(ignore);
}
void