2010-05-30 27 views
5

Tôi đang cố gắng để hồ sơ một thư viện được chia sẻ trên GNU/Linux mà xử lý âm thanh thời gian thực, vì vậy hiệu suất là quan trọng. Tôi chạy một chương trình khác mà móc nó lên đến đầu vào âm thanh và đầu ra của hệ thống của tôi, và hồ sơ với callgrind.Tôi làm cách nào để nhận lệnh gọi để kết xuất thông tin dòng nguồn?

Nhìn vào kết quả trong KCacheGrind, tôi nhận được thông tin tuyệt vời về những chức năng đang chiếm hầu hết thời gian của tôi. Tuy nhiên, nó sẽ không cho phép tôi nhìn vào dòng thông tin theo dòng, và thay vào đó nói rằng tôi cần phải biên dịch nó với các biểu tượng gỡ rối và chạy lại hồ sơ.

Chương trình mà tôi đang lược tả không được biên dịch với các biểu tượng gỡ lỗi, nhưng thư viện là. Và tôi biết điều này, bởi vì thú vị, chú thích mã nguồn cho cachegrind hoạt động tốt.

Khi tôi chạy callgrind, nó nói mặc định là để đổ thông tin dòng nguồn, nhưng nó chỉ không làm điều đó. Có cách nào tôi có thể ép buộc nó, hoặc tìm ra những gì ngăn chặn nó?

+7

Có thể là một câu hỏi ngu ngốc, nhưng bạn có thể biên dịch lại ứng dụng của mình bằng các biểu tượng gỡ lỗi không? –

Trả lời

0

Bạn đang sử dụng --dump-instr=yes --trace-jump=yes để có được thông tin cấp hướng dẫn?

+0

Tôi đã không sử dụng các tùy chọn đó, nhưng lại chạy nó với những tùy chọn đó, tôi vẫn không thể làm cho nó hiển thị các dòng nguồn. –

+2

Các tùy chọn này hiển thị mức lệnh hướng dẫn lắp ráp, không phải cấp nguồn C/C++. – jluzwick

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