Nó làm phiền tôi mỗi khi tôi sử dụng -XX:+PrintAssembly
với Điểm phát sóng và phải đọc cú pháp AT & T khủng khiếp.Hotspot7 hsdis PrintAssembly Intel Syntax
Có cách nào để yêu cầu nó sử dụng cú pháp của Intel không?
Nó làm phiền tôi mỗi khi tôi sử dụng -XX:+PrintAssembly
với Điểm phát sóng và phải đọc cú pháp AT & T khủng khiếp.Hotspot7 hsdis PrintAssembly Intel Syntax
Có cách nào để yêu cầu nó sử dụng cú pháp của Intel không?
Tất cả bạn cần là để phân tích một số tùy chọn vào dis-asm.h và binutils đang
Đối với intel Asm (mà tôi cũng thích) chỉ cần thêm những điều sau
-XX:PrintAssemblyOptions=intel
Nếu bạn cần phải kết hợp tùy chọn làm điều đó bằng dấu phẩy như vậy
-XX:PrintAssemblyOptions=intel,hsdis-help
Bất cứ điều gì không được coi là một lựa chọn hsdis sẽ được đưa đến bộ phận phân tách, các tùy chọn này là những người mà bạn thấy được liệt kê từ
objdump --help
... <SNIP A lot of --help text %<> ...
The following i386/x86-64 specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
x86-64 Disassemble in 64bit mode
i386 Disassemble in 32bit mode
i8086 Disassemble in 16bit mode
att Display instruction in AT&T syntax
intel Display instruction in Intel syntax
att-mnemonic
Display instruction in AT&T mnemonic
intel-mnemonic
Display instruction in Intel mnemonic
addr64 Assume 64bit address size
addr32 Assume 32bit address size
addr16 Assume 16bit address size
data32 Assume 32bit data size
data16 Assume 16bit data size
suffix Always display instruction suffix in AT&T syntax
Report bugs to <http://www.sourceware.org/bugzilla/>.
Thật tuyệt vời! Mặc dù họ thực sự có thể đề cập đến một nơi nào đó - thậm chí biết rằng nó nên là 'PrintAssemblyOptions' Tôi dường như không thể tìm thấy bất kỳ tài liệu nào về điều đó với google. – Voo
Tôi không nghĩ rằng có bất kỳ cách nào tồn tại để thực hiện việc này. Nhưng đây là những gì tôi đã tìm thấy- Here là nguồn của hsdis
. Bạn có thể thay đổi Makefile
bằng cách chuyển -masm=intel
tới GCC. Và nếu nó hoạt động, từ bây giờ trở đi, +PrintAssembly
sẽ bắt đầu xuất ra lắp ráp cú pháp của Intel.
Dưới đây là step by step procedure để lấy nguồn, xây dựng và cuối cùng nhận được hsdis-arch.so
là công cụ thực hiện công việc tháo gỡ!
Tôi chưa tự mình thử. Chúc các bạn có được điều này để làm việc :)
Nếu không có gì làm việc, điều này sẽ làm cho bạn cảm thấy thoải mái với AT&T Syntax :)
Cảm ơn, nhưng chính xác thì tôi sẽ thêm '-masm = intel' vào makefile ở đâu? Tôi chỉ làm 'CFLAGS + = -masm = intel' nhưng điều đó không làm được điều này. – Voo
'CFLAGS' là đúng nơi, nhưng tôi không chắc tại sao nó không hoạt động cho bạn. 'Hsdis-arch.so' có được tạo ra không? Bất kỳ sự khác biệt nào trong nó sau khi thêm tùy chọn gỡ lỗi này? –
Tập tin như vậy được tạo ra tốt, nhưng đầu ra là giống như không có nó (tức là vẫn còn AT & T) - cũng không có thông báo lỗi. Và có, tôi đã cài đặt nasm trong con đường của tôi nếu đó là quan trọng? – Voo
By the way, Những hệ thống bạn đang chạy trên? –
@Pavan Như tôi đã hiểu có một nhị phân cho tất cả các hệ điều hành vì vậy tôi hy vọng tôi có thể có được một cách làm việc crossplatform. Chủ yếu là openSUSE và Windows. Đáng buồn thay như câu trả lời của bạn cho biết - nếu tôi có thể vượt qua một lựa chọn như vậy trong khi biên soạn, tôi nghi ngờ có cách nào tốt hơn để làm điều đó. Sẽ thử điều đó. – Voo
Đối với cửa sổ, bạn nên nhận cú pháp intel theo mặc định? –