summaryrefslogtreecommitdiff
path: root/test/tsan/java_symbolization.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/tsan/java_symbolization.cc')
-rw-r--r--test/tsan/java_symbolization.cc18
1 files changed, 7 insertions, 11 deletions
diff --git a/test/tsan/java_symbolization.cc b/test/tsan/java_symbolization.cc
index aa5ec0c37..f82bd5ead 100644
--- a/test/tsan/java_symbolization.cc
+++ b/test/tsan/java_symbolization.cc
@@ -2,18 +2,13 @@
#include "java.h"
#include <memory.h>
-extern "C" bool __tsan_symbolize_external(jptr pc,
- char *func_buf, jptr func_siz,
- char *file_buf, jptr file_siz,
- int *line, int *col) {
+extern "C" void __tsan_symbolize_external_ex(
+ jptr pc, void (*add_frame)(void *, const char *, const char *, int, int),
+ void *ctx) {
if (pc == (1234 | kExternalPCBit)) {
- memcpy(func_buf, "MyFunc", sizeof("MyFunc"));
- memcpy(file_buf, "MyFile.java", sizeof("MyFile.java"));
- *line = 1234;
- *col = 56;
- return true;
+ add_frame(ctx, "MyInnerFunc", "MyInnerFile.java", 1234, 56);
+ add_frame(ctx, "MyOuterFunc", "MyOuterFile.java", 4321, 65);
}
- return false;
}
void *Thread(void *p) {
@@ -40,5 +35,6 @@ int main() {
}
// CHECK: WARNING: ThreadSanitizer: data race
-// CHECK: #0 MyFunc MyFile.java:1234:56
+// CHECK: #0 MyInnerFunc MyInnerFile.java:1234:56
+// CHECK: #1 MyOuterFunc MyOuterFile.java:4321:65
// CHECK: DONE