2011-06-22 30 views
10

Tôi đang tìm kiếm nó thực sự gây phiền nhiễu khi phải tháo rời nhiều swathes mã thư viện chỉ để có đủ ngữ cảnh để xem điều gì gây ra sự cố. Có cách nào mà tôi chỉ có thể tay objdump một địa chỉ, và có nó tìm thấy ranh giới của các chức năng có chứa cho tôi?Tôi có thể cung cấp địa chỉ objdump và để nó tháo rời chức năng chứa không?

EDIT: Tốt hơn, tôi có thể tháo rời toàn bộ dấu vết ngăn xếp cho tôi không?

+0

thể bạn không chỉ cần tải các lõi sụp đổ vào GDB và khám phá đó? (Hoặc làm thế nào để bạn kết thúc với địa chỉ sụp đổ mà không sử dụng lõi hoặc gdb?) – Rup

+0

Tôi không chắc chắn nếu vụ tai nạn thậm chí còn tạo ra một lõi sụp đổ. Điều này sẽ hướng tới việc gỡ lỗi hạt nhân, và thư viện bị lỗi đang thực hiện quá sớm trong quá trình khởi động. – Alex

Trả lời

14

Điều gì đó giống như vậy?

$ objdump -S --start-address=0x42 foo.o | awk '{print $0} $3~/retq?/{exit}' 

It in dis-lắp ráp niêm yết bắt đầu từ 0x42 cho đến khi nó tìm thấy một ret(q), giả sử ranh giới được đánh dấu bằng ret(q)

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