-
Notifications
You must be signed in to change notification settings - Fork 273
Add symex-backtrace #3468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add symex-backtrace #3468
Conversation
afec0df
to
d63e03b
Compare
d63e03b
to
562dd88
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that this could be useful, but it badly needs comments: neither the commit message nor the implementation provide any. As is, @romainbrenguier surely would remove it upon the next cleanup!
562dd88
to
5244c74
Compare
@tautschnig added |
5244c74
to
ec32e36
Compare
eea9959
to
aa3cc82
Compare
aa3cc82
to
b34875a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚫
This PR failed Diffblue compatibility checks (cbmc commit: b34875a).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/92714166
Status will be re-evaluated on next push.
Please contact @peterschrammel, @thk123, or @allredj for support.
Common spurious failures:
- the cbmc commit has disappeared in the mean time (e.g. in a force-push)
- the author is not in the list of contributors (e.g. first-time contributors).
The incompatibility may have been introduced by an earlier PR. In that case merging this
PR should be avoided unless it fixes the current incompatibility.
for(auto stackit = threads[source.thread_nr].call_stack.rbegin(), | ||
stackend = threads[source.thread_nr].call_stack.rend(); | ||
stackit != stackend; | ||
++stackit) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⛏️ I would suggest the slighly nicer:
for(const auto &frame : make_range(
threads[source.thread_nr].call_stack.rbegin(),
threads[source.thread_nr].call_stack.rend()))
👍 |
@romainbrenguier those comments have been added. Nice as ranges are, I think I'll restrict using them to when I want their mapping / filtering action, rather than just to permit c++11 syntax ;) |
Here's a useful function, mainly for calling from the debugger or temporary debug prints, that gives a backtrace of symex's current callstack.