Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[gdb/symtab] Fix data race in get_die_type_at_offset
Data race between: ... ================== WARNING: ThreadSanitizer: data race (pid=28142) Read of size 4 at 0x7b1c0004b978 by thread T2: #0 htab_find_with_hash libiberty/hashtab.c:591 (gdb+0x1c5a254) #1 htab_find libiberty/hashtab.c:621 (gdb+0x1c5a44d) #2 get_die_type_at_offset gdb/dwarf2/read.c:23877 (gdb+0x872004) #3 get_die_type gdb/dwarf2/read.c:23890 (gdb+0x8720d0) #4 read_type_die gdb/dwarf2/read.c:21460 (gdb+0x8698e4) #5 process_die gdb/dwarf2/read.c:8674 (gdb+0x839f6e) #6 read_file_scope gdb/dwarf2/read.c:9610 (gdb+0x83ca5d) #7 process_die gdb/dwarf2/read.c:8614 (gdb+0x839e1f) #8 process_full_comp_unit gdb/dwarf2/read.c:8383 (gdb+0x83945e) #9 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x83597d) ... and: ... Previous write of size 4 at 0x7b1c0004b978 by thread T1: #0 htab_find_with_hash libiberty/hashtab.c:591 (gdb+0x1c5a26e) #1 htab_find libiberty/hashtab.c:621 (gdb+0x1c5a44d) #2 get_die_type_at_offset gdb/dwarf2/read.c:23877 (gdb+0x872004) #3 get_die_type gdb/dwarf2/read.c:23890 (gdb+0x8720d0) #4 process_structure_scope gdb/dwarf2/read.c:14845 (gdb+0x851c12) #5 process_die gdb/dwarf2/read.c:8643 (gdb+0x839f24) #6 read_file_scope gdb/dwarf2/read.c:9610 (gdb+0x83ca5d) #7 process_die gdb/dwarf2/read.c:8614 (gdb+0x839e1f) #8 process_full_comp_unit gdb/dwarf2/read.c:8383 (gdb+0x83945e) #9 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x83597d) ... Fix by using lock, also in set_die_type.
- Loading branch information