2009-10-20 20 views
6

Tôi đang cố gắng phân tích một bãi chứa sự cố nhỏ và cần tệp biểu tượng để biết thêm chi tiết về sự cố. Im hiện chỉ nhìn thấy: "! 034eff74 0086eee9 00000000 0089d58d 034eff94 app_integrator ZNK14ACE_Data_Block4baseEv + 0x6"Trích xuất thông tin gỡ lỗi từ tệp msys/mingw gcc được tạo bằng cách sử dụng rebase.exe?

Có thể trích xuất thông tin gỡ lỗi từ một msys/mingw gcc dll xây dựng thành một định dạng có thể đọc được windbg? Nếu không, có cách nào khác để nhận thông tin chi tiết hơn, như tải tệp MAP theo cách nào đó không?

Tệp dll và tất cả các tệp đó chứa tệp .o được tạo bằng cờ -g.

Trả lời

5

Windbg không thể đối phó với thông tin gỡ lỗi sẽ được tạo bởi -g khi cài đặt mingw. Tuy nhiên, nó có thể bị cáo buộc đối phó với các biểu tượng COFF.

Nếu tệp nguồn cho tệp DLL của bạn đủ nhỏ, có thể bạn có thể nhận được thông tin gỡ lỗi COFF để tạo (-gcoff thay vì -g).

Vì vậy, Windbg có thể (được cho là) ​​xử lý các biểu tượng COFF và GCC có thể tạo chúng. Vì vậy, nó phải dễ dàng từ đó, phải không? Tôi đã cố gắng để làm chính xác điều này với một thực thi Win32 được tạo ra bởi Visual Studio 2008 đã được tải một DLL biên dịch gcc. Thật không may cho tôi, biên dịch với -gcoff không hoạt động. Gcc của Mingw sẽ không tạo ra các biểu tượng COFF cho các dự án có hơn 64k dòng mã. Các DLL tôi đã được sử dụng là distincly lớn hơn sau đó 64K dòng mã. Đáng buồn thay tôi phải thừa nhận, tôi đã từ bỏ và rơi trở lại trên OutputDebugString đáng tin cậy. Nếu không tôi sẽ có thể đưa ra hướng dẫn đầy đủ hơn. Tôi không ưa thích việc điều chỉnh tùy chọn tạo gcc làm biểu tượng COFF cho các tệp nguồn lớn hơn hoặc tùy chọn thay thế bằng cách viết phần mở rộng gỡ lỗi để phân tích dữ liệu DWARF hoặc STABS thành bảng biểu tượng bên trong của windbg.

Tôi đã khắc phục sự cố, bằng cách này!

Các đề xuất khác có thể được tìm thấy in this forum post at windbg.info.

+0

Tuyệt vời, tôi sẽ thử. – Kristofer

+0

Tôi rất muốn biết nếu nó hoạt động, hoặc những gì khác bạn quản lý để làm thay vào đó nếu không! – Pete

+0

Trên một lưu ý liên quan, profiler Very Sleepy hoạt động rất tốt với các biểu tượng gỡ lỗi được tạo bằng -gstabs –

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