Debugging quality-of-life improvements (#810)

* Debugging quality-of-life improvements

- Use std::abort for `CHECK`/`FATAL` failures, which acts as a debugger breakpoint as well as automatically printing a stack trace.
- Re-enable printing continuations in `--trace` mode.
- Log the source location of each step in `--trace` mode.

Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
This commit is contained in:
Geoff Romer
2021-09-08 09:25:16 -07:00
committed by GitHub
co-authored by Jon Meow
parent f931a8cead
commit 33dd9a873d
5 changed files with 56 additions and 60 deletions
+4 -4
View File
@@ -11,7 +11,7 @@ namespace Carbon {
TEST(CheckTest, CheckTrue) { CHECK(true); }
TEST(CheckTest, CheckFalse) {
ASSERT_DEATH({ CHECK(false); }, "\nCHECK failure: false\n");
ASSERT_DEATH({ CHECK(false); }, "CHECK failure: false\n");
}
TEST(CheckTest, CheckTrueCallbackNotUsed) {
@@ -25,7 +25,7 @@ TEST(CheckTest, CheckTrueCallbackNotUsed) {
}
TEST(CheckTest, CheckFalseMessage) {
ASSERT_DEATH({ CHECK(false) << "msg"; }, "\nCHECK failure: false: msg\n");
ASSERT_DEATH({ CHECK(false) << "msg"; }, "CHECK failure: false: msg\n");
}
TEST(CheckTest, CheckOutputForms) {
@@ -36,13 +36,13 @@ TEST(CheckTest, CheckOutputForms) {
}
TEST(CheckTest, Fatal) {
ASSERT_DEATH({ FATAL() << "msg"; }, "\nFATAL: msg\n");
ASSERT_DEATH({ FATAL() << "msg"; }, "FATAL: msg\n");
}
auto FatalNoReturnRequired() -> int { FATAL() << "msg"; }
TEST(ErrorTest, FatalNoReturnRequired) {
ASSERT_DEATH({ FatalNoReturnRequired(); }, "\nFATAL: msg\n");
ASSERT_DEATH({ FatalNoReturnRequired(); }, "FATAL: msg\n");
}
} // namespace Carbon