summaryrefslogtreecommitdiffstats
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
commitf10f9bec833f6b438d52d3dcb70578bfde449116 (patch)
treeb86bdb8d65df8bc9a3eb1c86b8d5e6e9827acea4
parent8d03b8a8ce55116136b3bdb2b21aca0666d7f6f7 (diff)
downloadbcm5719-llvm-f10f9bec833f6b438d52d3dcb70578bfde449116.tar.gz
bcm5719-llvm-f10f9bec833f6b438d52d3dcb70578bfde449116.zip
libclang: Print more information when recovering from crashes in
clang_parseTranslationUnit. llvm-svn: 111855
-rw-r--r--clang/tools/libclang/CIndex.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 27d5ab25b82..a98f064e6f9 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/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;
}
OpenPOWER on IntegriCloud