diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2012-07-24 12:29:43 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2012-07-24 12:29:43 +0000 |
commit | bcf0b7002bc117ec261ec86f1905d8077923ab26 (patch) | |
tree | 0cfd3bbcdf232822333e83c659ee1c3bc21e4f6a /compiler-rt | |
parent | 65d842ae5116977459b5ba3c43dd9966e2e8ed24 (diff) | |
download | bcm5719-llvm-bcf0b7002bc117ec261ec86f1905d8077923ab26.tar.gz bcm5719-llvm-bcf0b7002bc117ec261ec86f1905d8077923ab26.zip |
tsan: align report style with Go internal format
llvm-svn: 160672
Diffstat (limited to 'compiler-rt')
-rw-r--r-- | compiler-rt/lib/tsan/go/test.c | 2 | ||||
-rw-r--r-- | compiler-rt/lib/tsan/go/tsan_go.cc | 24 | ||||
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_report.cc | 4 |
3 files changed, 14 insertions, 16 deletions
diff --git a/compiler-rt/lib/tsan/go/test.c b/compiler-rt/lib/tsan/go/test.c index c6c21a165bd..7d6a8ce3ea9 100644 --- a/compiler-rt/lib/tsan/go/test.c +++ b/compiler-rt/lib/tsan/go/test.c @@ -4,7 +4,7 @@ void __tsan_init(); void __tsan_fini(); void __tsan_event(int typ, int tid, void *pc, void *addr, int info); -int goCallbackCommentPc(void *pc, char **img, char **rtn, char **file, int *l) { +int __tsan_symbolize(void *pc, char **img, char **rtn, char **file, int *l) { return 0; } diff --git a/compiler-rt/lib/tsan/go/tsan_go.cc b/compiler-rt/lib/tsan/go/tsan_go.cc index ce916adcd11..41f09665470 100644 --- a/compiler-rt/lib/tsan/go/tsan_go.cc +++ b/compiler-rt/lib/tsan/go/tsan_go.cc @@ -37,24 +37,22 @@ bool IsExpectedReport(uptr addr, uptr size) { void internal_start_thread(void(*func)(void*), void *arg) { } -extern "C" int goCallbackCommentPc(uptr pc, char **img, char **rtn, - char **filename, int *lineno); +extern "C" int __tsan_symbolize(uptr pc, char **func, char **file, + int *line, int *off); extern "C" void free(void *p); ReportStack *SymbolizeCode(uptr addr) { ReportStack *s = NewReportStackEntry(addr); - char *img, *rtn, *filename; - int lineno; - if (goCallbackCommentPc(addr, &img, &rtn, &filename, &lineno)) { - s->module = internal_strdup(img); - s->offset = addr; - s->func = internal_strdup(rtn); - s->file = internal_strdup(filename); - s->line = lineno; + char *func, *file; + int line, off; + if (__tsan_symbolize(addr, &func, &file, &line, &off)) { + s->offset = off; + s->func = internal_strdup(func); + s->file = internal_strdup(file); + s->line = line; s->col = 0; - free(img); - free(rtn); - free(filename); + free(func); + free(file); } return s; } diff --git a/compiler-rt/lib/tsan/rtl/tsan_report.cc b/compiler-rt/lib/tsan/rtl/tsan_report.cc index a83f7b70b16..c841a9827f4 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_report.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_report.cc @@ -131,8 +131,8 @@ void PrintReport(const ReportDesc *rep) { static void PrintStack(const ReportStack *ent) { for (int i = 0; ent; ent = ent->next, i++) { - TsanPrintf(" %s()\n %s:%d +%p\n", - ent->func, ent->file, ent->line, (void*)ent->pc); + TsanPrintf(" %s()\n %s:%d +0x%zx\n", + ent->func, ent->file, ent->line, (void*)ent->offset); } } |