You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 1, 2023. It is now read-only.
we occur an failed assert when we try to use the command:
sudo ./perf2bolt -p ./perf.data ./observer -o test
the crash log is :
PERF2BOLT: 28426 samples (2.1%) were ignored
14265 PERF2BOLT: traces mismatching disassembled function contents: 34096 (0.1%)
14266 PERF2BOLT: out of range traces involving unknown regions: 5375932 (13.1%)
14267 BOLT-WARNING: function bn_gather5 has an object detected in a padding region at address 0xbae1580
14268 BOLT-WARNING: function rsaz_avx2_eligible has an object detected in a padding region at address 0xbb02e80
14269 BOLT-WARNING: function rsaz_512_gather4 has an object detected in a padding region at address 0xbb04a40
14270 BOLT-WARNING: unable to disassemble instruction at offset 0x1a (address 0xbb1e01a) in function ecp_nistz256_precomputed
14271 BOLT-WARNING: unable to disassemble instruction at offset 0x11 (address 0xbb6e7d1) in function _vpaes_consts/1
14272 BOLT-WARNING: function aesni_set_encrypt_key has an object detected in a padding region at address 0xbb72e40
14273 BOLT-WARNING: unable to disassemble instruction at offset 0x30 (address 0xbb797f0) in function K_XX_XX/1
14274 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbb7cbc1) in function K256/2
14275 BOLT-WARNING: function Camellia_Ekeygen has an object detected in a padding region at address 0xbb86200
14276 BOLT-WARNING: function EVP_chacha20_poly1305 has an object detected in a padding region at address 0xbb88b50
14277 BOLT-WARNING: function aesni_gcm_encrypt has an object detected in a padding region at address 0xbbbc240
14278 BOLT-WARNING: function gcm_ghash_avx has an object detected in a padding region at address 0xbbc32c0
14279 BOLT-WARNING: function poly1305_blocks_avx2/1(2) has an object detected in a padding region at address 0xbbd6180
14280 BOLT-WARNING: unable to disassemble instruction at offset 0x9b (address 0xbbdf4fb) in function RC4_options
14281 BOLT-WARNING: unable to disassemble instruction at offset 0x8 (address 0xbbf0448) in function iotas/1
14282 BOLT-WARNING: unable to disassemble instruction at offset 0x33 (address 0xbbf7c53) in function K_XX_XX/2
14283 BOLT-WARNING: unable to disassemble instruction at offset 0x53 (address 0xbbfc593) in function K_XX_XX/3
14284 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbc04201) in function K256/3
14285 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbc05d81) in function K256/4
14286 BOLT-WARNING: unable to disassemble instruction at offset 0x15 (address 0xbc0bfd5) in function K512/1
14287 BOLT-WARNING: function whirlpool_block has an object detected in a padding region at address 0xbc24d00
14288 BOLT-INFO: forcing -jump-tables=move as PIC jump table was detected in function main
14289 perf2bolt: /disk1/yifeng.dongyifeng/BOLT/bolt/src/Exceptions.cpp:118: void llvm::bolt::BinaryFunction::parseLSDA(llvm::ArrayRef, uint64_t): Assertion `Data.isValidOffset(Offset) && "wrong LSDA address"' failed.
14290 #0 0x0000000001c8f037 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:565:22
14291 #1 0x0000000001c8f0ee PrintStackTraceSignalHandler(void) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:632:1
14292 #2 0x0000000001c8d0d4 llvm::sys::RunSignalHandlers() /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Signals.cpp:71:20
14293 #3 0x0000000001c8ea7e SignalHandler(int) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:407:1
14294 #4 0x00007fc95169b9d0 __restore_rt (/lib64/libpthread.so.0+0x149d0)
14295 #5 0x00007fc950f5af35 raise /usr/src/debug/glibc-2.30-2-gd74461fa34/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
14296 #6 0x00007fc950f448d7 abort /usr/src/debug/glibc-2.30-2-gd74461fa34/stdlib/abort.c:81:7
14297 #7 0x00007fc950f447a7 get_sysdep_segment_value /usr/src/debug/glibc-2.30-2-gd74461fa34/intl/loadmsgcat.c:509:8
14298 #8 0x00007fc950f447a7 _nl_load_domain.cold /usr/src/debug/glibc-2.30-2-gd74461fa34/intl/loadmsgcat.c:970:34
14299 #9 0x00007fc950f53536 (/lib64/libc.so.6+0x34536)
14300 #10 0x000000000059fc40 llvm::bolt::BinaryFunction::parseLSDA(llvm::ArrayRef, unsigned long) /disk1/yifeng.dongyifeng/BOLT/bolt/src/Exceptions.cpp:118:3
14301 #11 0x00000000005dcbf5 llvm::bolt::RewriteInstance::disassembleFunctions() /disk1/yifeng.dongyifeng/BOLT/bolt/src/RewriteInstance.cpp:2837:25
14302 #12 0x00000000005d0c49 llvm::bolt::RewriteInstance::run() /disk1/yifeng.dongyifeng/BOLT/bolt/src/RewriteInstance.cpp:824:27
14303 #13 0x0000000000412b33 main /disk1/yifeng.dongyifeng/BOLT/bolt/src/llvm-bolt.cpp:303:49
14304 #14 0x00007fc950f46193 __libc_start_main /usr/src/debug/glibc-2.30-2-gd74461fa34/csu/../csu/libc-start.c:342:3
14305 #15 0x000000000041169e _start (./perf2bolt+0x41169e)
14306 PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Thanks for the report. Which compiler did you use to build the binary you are profiling? Is there an easy way for us to repro this?
You could confirm that the LSDA address is wrong with:
llvm-dwarfdump --eh-frame | grep 0x29455a1
It looks like you already did that, but it's important to confirm with other tools (other than BOLT) that the parsed LSDA address from BOLT matches the one from an external tool, so we know that it's not a bug in BOLT interpreting a correct FDE field. A next step would be to:
readelf -WS
And check what section is before .gcc_except_table and what exactly is at 0x29455a1. If it's not a valid LSDA entry, then there is a bug in the compiler toolchain that created that FDE.
Thanks for replying.
I have confirmed there is the function in elf, CIE says this function has LSDA, but the value of LSDA in FDE is 0.
I think it might be a bug in GCC.
Now we just set LSDA with 0, if bolt occurs this problem. Any ideas?
hello,
we occur an failed assert when we try to use the command:
sudo ./perf2bolt -p ./perf.data ./observer -o test
the crash log is :
PERF2BOLT: 28426 samples (2.1%) were ignored
14265 PERF2BOLT: traces mismatching disassembled function contents: 34096 (0.1%)
14266 PERF2BOLT: out of range traces involving unknown regions: 5375932 (13.1%)
14267 BOLT-WARNING: function bn_gather5 has an object detected in a padding region at address 0xbae1580
14268 BOLT-WARNING: function rsaz_avx2_eligible has an object detected in a padding region at address 0xbb02e80
14269 BOLT-WARNING: function rsaz_512_gather4 has an object detected in a padding region at address 0xbb04a40
14270 BOLT-WARNING: unable to disassemble instruction at offset 0x1a (address 0xbb1e01a) in function ecp_nistz256_precomputed
14271 BOLT-WARNING: unable to disassemble instruction at offset 0x11 (address 0xbb6e7d1) in function _vpaes_consts/1
14272 BOLT-WARNING: function aesni_set_encrypt_key has an object detected in a padding region at address 0xbb72e40
14273 BOLT-WARNING: unable to disassemble instruction at offset 0x30 (address 0xbb797f0) in function K_XX_XX/1
14274 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbb7cbc1) in function K256/2
14275 BOLT-WARNING: function Camellia_Ekeygen has an object detected in a padding region at address 0xbb86200
14276 BOLT-WARNING: function EVP_chacha20_poly1305 has an object detected in a padding region at address 0xbb88b50
14277 BOLT-WARNING: function aesni_gcm_encrypt has an object detected in a padding region at address 0xbbbc240
14278 BOLT-WARNING: function gcm_ghash_avx has an object detected in a padding region at address 0xbbc32c0
14279 BOLT-WARNING: function poly1305_blocks_avx2/1(2) has an object detected in a padding region at address 0xbbd6180
14280 BOLT-WARNING: unable to disassemble instruction at offset 0x9b (address 0xbbdf4fb) in function RC4_options
14281 BOLT-WARNING: unable to disassemble instruction at offset 0x8 (address 0xbbf0448) in function iotas/1
14282 BOLT-WARNING: unable to disassemble instruction at offset 0x33 (address 0xbbf7c53) in function K_XX_XX/2
14283 BOLT-WARNING: unable to disassemble instruction at offset 0x53 (address 0xbbfc593) in function K_XX_XX/3
14284 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbc04201) in function K256/3
14285 BOLT-WARNING: unable to disassemble instruction at offset 0x1 (address 0xbc05d81) in function K256/4
14286 BOLT-WARNING: unable to disassemble instruction at offset 0x15 (address 0xbc0bfd5) in function K512/1
14287 BOLT-WARNING: function whirlpool_block has an object detected in a padding region at address 0xbc24d00
14288 BOLT-INFO: forcing -jump-tables=move as PIC jump table was detected in function main
14289 perf2bolt: /disk1/yifeng.dongyifeng/BOLT/bolt/src/Exceptions.cpp:118: void llvm::bolt::BinaryFunction::parseLSDA(llvm::ArrayRef, uint64_t): Assertion `Data.isValidOffset(Offset) && "wrong LSDA address"' failed.
14290 #0 0x0000000001c8f037 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:565:22
14291 #1 0x0000000001c8f0ee PrintStackTraceSignalHandler(void) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:632:1
14292 #2 0x0000000001c8d0d4 llvm::sys::RunSignalHandlers() /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Signals.cpp:71:20
14293 #3 0x0000000001c8ea7e SignalHandler(int) /disk1/yifeng.dongyifeng/BOLT/llvm/lib/Support/Unix/Signals.inc:407:1
14294 #4 0x00007fc95169b9d0 __restore_rt (/lib64/libpthread.so.0+0x149d0)
14295 #5 0x00007fc950f5af35 raise /usr/src/debug/glibc-2.30-2-gd74461fa34/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
14296 #6 0x00007fc950f448d7 abort /usr/src/debug/glibc-2.30-2-gd74461fa34/stdlib/abort.c:81:7
14297 #7 0x00007fc950f447a7 get_sysdep_segment_value /usr/src/debug/glibc-2.30-2-gd74461fa34/intl/loadmsgcat.c:509:8
14298 #8 0x00007fc950f447a7 _nl_load_domain.cold /usr/src/debug/glibc-2.30-2-gd74461fa34/intl/loadmsgcat.c:970:34
14299 #9 0x00007fc950f53536 (/lib64/libc.so.6+0x34536)
14300 #10 0x000000000059fc40 llvm::bolt::BinaryFunction::parseLSDA(llvm::ArrayRef, unsigned long) /disk1/yifeng.dongyifeng/BOLT/bolt/src/Exceptions.cpp:118:3
14301 #11 0x00000000005dcbf5 llvm::bolt::RewriteInstance::disassembleFunctions() /disk1/yifeng.dongyifeng/BOLT/bolt/src/RewriteInstance.cpp:2837:25
14302 #12 0x00000000005d0c49 llvm::bolt::RewriteInstance::run() /disk1/yifeng.dongyifeng/BOLT/bolt/src/RewriteInstance.cpp:824:27
14303 #13 0x0000000000412b33 main /disk1/yifeng.dongyifeng/BOLT/bolt/src/llvm-bolt.cpp:303:49
14304 #14 0x00007fc950f46193 __libc_start_main /usr/src/debug/glibc-2.30-2-gd74461fa34/csu/../csu/libc-start.c:342:3
14305 #15 0x000000000041169e _start (./perf2bolt+0x41169e)
14306 PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
After analyzing, I found the following code failed when bolt try to parse LDSA:
https://github.com/facebookincubator/BOLT/blob/01f471e7108f04b66fd7d3689f3cae3ec8ff6449/src/Exceptions.cpp#L119
The address of the section ".gcc_except_table" is 0x0000000002a7141c, but the LDSA address of a FDE related to the function is 0x29455a1.
Thanks in advance.
The text was updated successfully, but these errors were encountered: