[compiler-rt] d53abf8 - sanitizer_common: fix deadlock detector output

Dmitry Vyukov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 26 07:11:56 PDT 2021


Author: Dmitry Vyukov
Date: 2021-10-26T16:11:52+02:00
New Revision: d53abf834c4fde7a904b9cb7b1913ee38c768f21

URL: https://github.com/llvm/llvm-project/commit/d53abf834c4fde7a904b9cb7b1913ee38c768f21
DIFF: https://github.com/llvm/llvm-project/commit/d53abf834c4fde7a904b9cb7b1913ee38c768f21.diff

LOG: sanitizer_common: fix deadlock detector output

Print PC of the previous lock, not the current one.
The current one will be printed during unwind.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D112533

Added: 
    

Modified: 
    compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp
index 1c177d8e7cca..40fe56661250 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp
@@ -174,7 +174,7 @@ struct InternalDeadlockDetector {
     if (max_idx != MutexInvalid && !mutex_can_lock[max_idx][type]) {
       Printf("%s: internal deadlock: can't lock %s under %s mutex\n", SanitizerToolName,
              mutex_meta[type].name, mutex_meta[max_idx].name);
-      PrintMutexPC(pc);
+      PrintMutexPC(locked[max_idx].pc);
       CHECK(0);
     }
     locked[type].seq = ++sequence;


        


More information about the llvm-commits mailing list