2011-12-21 4 views
5

Tôi có một công cụ được trộn lẫn C#/quản lý C++/không được quản lý C++ được xây dựng với Visual Studio 2010. Mã thực sự trải rộng trên một .exe (tôi sẽ gọi nó là mybinary.exe) và một .dll (mylib.dll.)Làm thế nào tôi có thể nhận được hồ sơ rất Sleepy để nhận ra tên chức năng trong C + + nhị phân?

Tôi đã thiết lập cài đặt xây dựng trên dự án cho dll và tệp exe để tạo tệp PDB trong bản dựng. Tôi đã đảm bảo rằng các tệp PDB đều nằm trong cùng thư mục mà exe và pdb đang ở. Nhưng tôi vẫn không thấy tên của các hàm khi tôi gỡ lỗi chương trình này; Tôi chỉ thấy địa chỉ. Dưới đây là đoạn trích có liên quan về những gì tôi nhận được trong thanh trạng thái nhỏ ở phía dưới khi tôi chọn chương trình trong màn hình đầu tiên của Rất Sleepy:

DBGHELP: mybinary.vshost - public symbols 
     C:\Users\(me)\AppData\Local\sleepy\vshost32-clr2.pdb\(long hex string)\vshost32-clr2.pdb 
... 
DBGHELP: No debug info for C:\myproj\mylib.dll. Searching for dbg file 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
SYMSRV: C:\Users\peastlund\AppData\Local\sleepy\mylib.dbg\4EF1F48B13c000\mylib.dbg not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\mylib.dll missing debug info. Searching for pdb anyway 
DBGHELP: mylib - public symbols 
     C:\myproj\mylib.pdb - unmatched 
... 
DBGHELP: MOD: mybinary.vshost 
... 
DBGHELP: mybinary - private symbols & lines 
     C:\myproj\mybinary.pdb 

Vì vậy, nó trông giống như có một vấn đề phù hợp với mylib.pdb để mylib. dll, vì một số lý do tôi không rõ ràng, nhưng tôi sẽ lưu ý rằng tôi không nhận được địa chỉ thích hợp cho các chức năng từ mybinary.exe hoặc. Tôi có một máy tính mới có cài đặt tất cả gần đây nên đây không phải là vấn đề "một số thư viện đã lỗi thời".

Được đánh giá cao nếu có ai có thể hỗ trợ điều này!

EDIT: Thực ra nó chỉ ra điều này không dành riêng cho mã được tối ưu hóa. Profilers khác có một số vấn đề với tối ưu hóa C++, đó là lý do tại sao tôi chuyển sang Very Sleepy, nhưng trên thử nghiệm tôi nhận ra bây giờ với Very Sleepy tôi dường như không thể có được tên chức năng ngay cả khi tôi biên dịch trong chế độ gỡ lỗi.

Trả lời

0

Đảm bảo những điều sau:

  1. Bạn đã thiết lập đường dẫn những biểu tượng tìm kiếm (Tools-> Options) để con đường địa phương của bạn
  2. Khởi động ứng dụng của bạn trước, sau đó bắt đầu buồn ngủ và hồ sơ
  3. Dừng profiling trước khi đơn đăng ký chấm dứt