2011-08-26 42 views
6

Tôi đang cố gắng sử dụng Eclipse với CDT để gỡ lỗi nhị phân 64 bit. Các nhị phân được xây dựng bên ngoài của Eclipse, và chạy tốt. Tôi khởi động nhị phân bên ngoài nhật thực và sau đó cố gắng đính kèm vào quá trình bằng cách sử dụng kiểu cấu hình gỡ lỗi 'C/C++ Attach to Application'.Gỡ lỗi CDT Eclipse đính kèm để xử lý - không ở định dạng có thể thực thi: Định dạng tệp không được nhận dạng

tôi có thể chọn các quá trình từ danh sách bật lên khi bạn chạy cấu hình gỡ lỗi, tuy nhiên, tôi nhận được thông báo lỗi sau:

Error in final launch sequence 
Failed to execute MI command: 
attach 22014 
Error message from debugger back end: 
"program.x64": not in executable format: File format not recognized 

Tất cả mọi thứ hoạt động tốt nếu tôi xây dựng cho một mục tiêu i386.

Tôi không khá chắc chắn đi đâu với điều này, tôi đã đọc mà nó có thể có cái gì để làm với các phân tích cú pháp nhị phân trong Eclipse:

This link đề cập đến phân tích cú pháp, và this link mô tả một lỗi với PE trình phân tích cú pháp đã được sửa.

Tôi đang chạy Eclipse Indigo với Eclipse CDT 8.0.0 trên Linux x64. Tôi đã thử 'Elf Parser' và 'GNU Elf Parser' dưới project_properties/C++ _ build/settings không may mắn.

thông tin

File:

hostmachinea:file program.x64 
programs.x64: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped 

GDB và các tập tin gdbinit là giá trị mặc định Eclipse

Trả lời

3

Nghe có vẻ như nếu GDB rằng Eclipse được bằng cách sử dụng được xây dựng cho i386, và do đó không thể gỡ lỗi 64-bit nhị phân. Bạn có thể cần phải cài đặt GDB 64 bit có khả năng.

Ở đây những gì được thông báo lỗi từ GDB hiện trông giống như:

$ ./gdb --version 
GNU gdb (GDB) 7.3.50.20110809-cvs 
Copyright (C) 2011 Free Software Foundation, Inc. 
... 
This GDB was configured as "i686-linux". 
... 

$ ./gdb -q /bin/date 
"/bin/date": not in executable format: File format not recognized 

GDB và các tập tin gdbinit là giá trị mặc định Eclipse

Bạn đã cài đặt 32-bit hoặc 64-bit phiên bản của CDT?

1

Trong vỏ, GDB Tôi tin là 64 bit:

~:gdb --version 
GNU gdb (GDB) 7.0.1 
Copyright (C) 2009 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-unknown-linux-gnu". 

tải date:

~:gdb -q /bin/date 
Reading symbols from /bin/date...(no debugging symbols found)...done. 

mà gdb, và sau khi đưa con đường đó một cách rõ ràng vào configuraiton debug trong Eclipse , Tôi không còn nhận được thông báo lỗi nữa.

Như một chút lưu ý phụ, làm cách nào bạn có thể tìm hiểu GDB Eclipse nào sử dụng theo mặc định?

Tôi đã tải xuống phiên bản 64 bit Eclipse Indigo, được chuyển sang chế độ pacakged với CDT.

Các vấn đề liên quan