2012-01-14 37 views
16

Tôi đang điều tra một vấn đề về hiệu năng với ứng dụng của tôi được viết bằng Delphi 2010. Có phải Delphi phát ra các biểu tượng mà Process Explorer có thể sử dụng khi xem các chuỗi đang chạy để tôi có thể thấy tên hàm không?Tôi có thể phát ra các biểu tượng gỡ lỗi từ ứng dụng Delphi của mình mà Process Explorer có thể sử dụng không?

Tôi đã chặn tên tệp thực thi của mình, nhưng bạn có thể thấy nó chỉ cung cấp cho tôi địa chỉ bộ nhớ của hàm và tôi muốn có tên hàm được giải quyết nếu có thể (như tôi có cho ole32. dll và ntdll.dll vì tôi đang sử dụng máy chủ biểu tượng MS).

Tôi biết điều này có thể được thực hiện cho VC++ applications and WinDbg ... nó có thể được thực hiện với các ứng dụng Delphi và Process Explorer không?

enter image description here

+3

Xem [câu trả lời này về cách sử dụng map2dbg] (http://stackoverflow.com/a/1240500/9842) –

Trả lời

14

Yep, những gì bạn cần làm là đảm bảo dự án được biên soạn với thông tin gỡ lỗi và rằng mối liên kết phát ra một tập tin bản đồ chi tiết (tùy chọn liên kết dự án). Không chắc chắn, nhưng bạn cũng có thể phải kiểm tra "bao gồm các biểu tượng gỡ lỗi từ xa" trên các tùy chọn trình liên kết.

Khi bạn có điều đó, bạn có thể sử dụng tiện ích để chuyển đổi bản đồ sang định dạng dbg mà ProcessExplorer sử dụng.

Chúng tôi làm điều này tại nơi làm việc bất cứ khi nào chúng tôi cần để có được một dấu vết ngăn xếp trên một sợi treo trên một trong các máy kiểm tra của chúng tôi.

tiện ích

Các Map2Dbg chúng tôi sử dụng: https://github.com/andremussche/map2dbg

+3

1 Tôi không biết về vấn đề này và sẽ tìm thấy nó rất hữu ích, không phải là phần mềm của tôi bao giờ treo tất nhiên !! ;-) –

+5

@DavidHeffernan: tất nhiên là không, chúng ta cũng không :-) Nó không treo, nó chỉ dừng lại để phản chiếu! –

+0

Delphi hỗ trợ sự phản chiếu ngay bây giờ, cũng như RTTI? –

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