Vì vậy, tôi có một cpu ưa thích mới hỗ trợ tập lệnh avx2. Điều này là rất tốt, nhưng phá vỡ gdb đảo ngược gỡ lỗi. Khi biên dịch không có mã tối ưu hóa vẫn sử dụng các thư viện được chia sẻ, ví dụ như các cuộc gọi memset() mà sau đó đi và gọi một phiên bản được tối ưu hóa của memx avx2. Điều này là tuyệt vời nhưng avx2 không được hỗ trợ bởi bản ghi gdb.gdb reverse debugging avx2
bản ghi quá trình không hỗ trợ hướng dẫn 0xc5 tại địa chỉ 0x7ffff690dd80.
0xc5 là tiền tố vex tại đây.
gỡ lỗi ngược hoạt động tốt với cpu không hỗ trợ avx2. Làm thế nào để tôi có được libc vv để không sử dụng các phiên bản tối ưu hóa avx2 của các cuộc gọi thư viện để tôi có thể sử dụng bản ghi gdb, bước lùi ...?
Tôi đã thử
LD_BIND_NOW=1
LD_HWCAP_MASK=0
compiling with -static
Và ngắn gỡ lỗi trên một máy cũ, tôi ra khỏi ý tưởng.
Bạn đang sử dụng phiên bản GLIBC nào? –
2,23 được xuất xưởng trên ubuntu 16.04 amd64 arch. cpu là xe i7 hỗ trợ avx2 – Hal
Đã được hỏi tại đây: http://stackoverflow.com/q/42451492/72178. – ks1322