glretrace: Exit early when state dumping is not possible.
Change-Id: Ib6d8622f08aa94b2c64b4379e236ba073d42699b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/apitrace/+/2224543
Reviewed-by: Po-Hsien Wang <pwang@chromium.org>
Commit-Queue: Robert Tarasov <tutankhamen@chromium.org>
Tested-by: Robert Tarasov <tutankhamen@chromium.org>
diff --git a/retrace/retrace_main.cpp b/retrace/retrace_main.cpp
index 9111d86..ab41dd4 100644
--- a/retrace/retrace_main.cpp
+++ b/retrace/retrace_main.cpp
@@ -348,12 +348,16 @@
}
// dumpStateCallNo is 0 when fetching default state
- if ((call->no == dumpStateCallNo || dumpStateCallNo == 0) &&
- dumper->canDump()) {
- StateWriter *writer = stateWriterFactory(std::cout);
- dumper->dumpState(*writer);
- delete writer;
- exit(0);
+ if (call->no == dumpStateCallNo || dumpStateCallNo == 0) {
+ if (dumper->canDump()) {
+ StateWriter *writer = stateWriterFactory(std::cout);
+ dumper->dumpState(*writer);
+ delete writer;
+ exit(0);
+ } else if (dumpStateCallNo != 0) {
+ std::cerr << call->no << ": error: failed to dump state\n";
+ exit(1);
+ }
}
}