2009-12-15 55 views

Trả lời

21

Bạn có thể sử dụng lệnh gdb: sản lượng

info source 

mẫu:

Current source file is a.c 
Compilation directory is /home/user/test 
Located in /home/user/test/a.c 
Contains 17 lines. 
Source language is c. 
Compiled with DWARF 2 debugging format. 
Includes preprocessor macro info. 
+0

nơi gdb lưu trữ vị trí mã nguồn này? Là nó trong bản thân thực thi? – suresh

+1

Trong thực thi chính nó được xây dựng với thông tin gỡ lỗi. –

+0

Nếu GDB đã lưu trữ thông tin trong thực thi, tại sao lại cần nguồn lại? – ernesto

1

Sử dụng gdb "hiển thị các thư mục" lệnh để xem đường dẫn tìm kiếm nguồn.

4

sử dụng

(gdb) show directories 

nếu bạn không biết nơi những thư mục được thiết lập séc vào bạn .gdbinit nếu có những câu như

directory /path/to/source 

cũng thấy this other SO Thread about gdb

2

Các nhị phân có thể được biên dịch bằng "-g" - tức là gỡ lỗi.

+1

Điều đó không có nghĩa là nguồn được biên dịch thành nhị phân. –

+1

Nhưng điều đó có nghĩa là các tham chiếu đến nguồn gốc được giữ lại. Tôi đã thử điều này trên hệ thống của tôi và nó hoạt động. – diciu

5

Thông tin này được giữ ở dạng nhị phân ở định dạng DWARF2. Vì vậy, để xem thông tin DWARF2, bạn có thể sử dụng tiện ích dwarfdump. Thông tin cần thiết được lưu giữ trong trường DW_AT_comp_dir.

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