aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-23 22:35:34 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-23 22:35:34 +0000
commit60a4543d42b6b8564a5650345de7beb7e99c60f3 (patch)
treea3da40eb1b7d0594f16538b88e37df3dfd8d7efb
parent6237cea785144d4cdbe2a5e722788e0b4b9b30f9 (diff)
libclang: Print more information when recovering from crashes in
clang_parseTranslationUnit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111855 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/libclang/CIndex.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 27d5ab25b8..a98f064e6f 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -1491,7 +1491,26 @@ CXTranslationUnit clang_parseTranslationUnit(CXIndex CIdx,
llvm::CrashRecoveryContext CRC;
if (!CRC.RunSafely(clang_parseTranslationUnit_Impl, &PTUI)) {
- fprintf(stderr, "libclang: crash detected during parsing");
+ fprintf(stderr, "libclang: crash detected during parsing: {\n");
+ fprintf(stderr, " 'source_filename' : '%s'\n", source_filename);
+ fprintf(stderr, " 'command_line_args' : [");
+ for (int i = 0; i != num_command_line_args; ++i) {
+ if (i)
+ fprintf(stderr, ", ");
+ fprintf(stderr, "'%s'", command_line_args[i]);
+ }
+ fprintf(stderr, "],\n");
+ fprintf(stderr, " 'unsaved_files' : [");
+ for (unsigned i = 0; i != num_unsaved_files; ++i) {
+ if (i)
+ fprintf(stderr, ", ");
+ fprintf(stderr, "('%s', '...', %ld)", unsaved_files[i].Filename,
+ unsaved_files[i].Length);
+ }
+ fprintf(stderr, "],\n");
+ fprintf(stderr, " 'options' : %d,\n", options);
+ fprintf(stderr, "}\n");
+
return 0;
}