Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Lập trình VC++ | Cách sử dụng symbols trong lập trình

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    5

    Mặc định Lập trình VC++ | Cách sử dụng symbols trong lập trình

    Mình đang soạn một chương trình đơn giản để test phần debug của vc++ 2005

    Visual C++ Code:
    1. // 3.cpp : Defines the entry point for the console application.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include <iostream>
    6. using std::cout;
    7.  
    8.  
    9. int _tmain(int argc, _TCHAR* argv[])
    10. {
    11.     cout << "Hello";
    12.     return 0;
    13. }

    Debug thì vc báo

    Error Text Code:
    1. '3.exe': Loaded 'C:\Documents and Settings\Man United\My Documents\Visual Studio 2005\Projects\3\debug\3.exe', Symbols loaded.
    2. '3.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Symbols loaded (source information stripped).
    3. '3.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Exports loaded.
    4. '3.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded.
    5. '3.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Symbols loaded (source information stripped).
    6. '3.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcp80d.dll', Symbols loaded.
    7. The program '[548] 3.exe: Native' has exited with code 0 (0x0).
    Cái này kiếm trong forum ko có nên có ai biết thì chỉ giùm nha (phần mình thắc mắc là mấy file ntdl.dll, kernel32.dll và msvcrt.dll thì symbols loaded nhưng mà lại có thêm source information stripped)

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Kệ cha nó, cứ bỏ qua, còn không thì download WinDbg của MS về, install rồi đọc help file của nó sẽ hiểu.
    Tui có thể giúp cậu làm ngắn gọn như sau:
    1. Khai báo biến môi trường sau trong My Computer - Properties - Advance - Environment Variables:
    _NT_SYMBOL_PATH =
    %SystemRoot%;%SystemRoot%\system32;SRV*%SystemRoot %\Symbols*http://msdl.microsoft.com/download/symbols
    2. Tạo thư mục Symbols trong thư mục Windows của cậu. Vd Windows của cậu ở C thì cậu tạo thư mục C:\Windows\Symbols
    3. Rồi, chạy được rồi, nhưng lần đầu tiên debug thì sẽ pause hơi lâu vì dbghelp và symsvr.dll của VS sẽ download các file .pdb hoặc .dbg của các dll được load bởi app đang debug về thư mục Symbols. Và nói trước là thư mục này càng về sau càng lớn, khoảng 3-500 MB đấy.
    Chúc làm được.

  3. #3
    Ngày gia nhập
    05 2007
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi TQN Xem bài viết
    Kệ cha nó, cứ bỏ qua, còn không thì download WinDbg của MS về, install rồi đọc help file của nó sẽ hiểu.
    Tui có thể giúp cậu làm ngắn gọn như sau:
    1. Khai báo biến môi trường sau trong My Computer - Properties - Advance - Environment Variables:
    _NT_SYMBOL_PATH =
    %SystemRoot%;%SystemRoot%\system32;SRV*%SystemRoot %\Symbols*http://msdl.microsoft.com/download/symbols
    2. Tạo thư mục Symbols trong thư mục Windows của cậu. Vd Windows của cậu ở C thì cậu tạo thư mục C:\Windows\Symbols
    3. Rồi, chạy được rồi, nhưng lần đầu tiên debug thì sẽ pause hơi lâu vì dbghelp và symsvr.dll của VS sẽ download các file .pdb hoặc .dbg của các dll được load bởi app đang debug về thư mục Symbols. Và nói trước là thư mục này càng về sau càng lớn, khoảng 3-500 MB đấy.
    Chúc làm được.
    Có phải bạn ý nói là phải download mấy cái symbol files từ microsoft symbol server ko? Lúc đầu mình debug thì bị báo là no symbols loaded nên mình down cái symbols package (khoảng 200MB) rồi install . Install xong thì hết bị no symbols loaded nhưng mà lại bị báo symbols loaded (source information stripped), nhưng mà như bạn thấy đó, thông báo này chỉ xuất hiện ở 3 file là ntdll.dll, kernel32.dll và msvcrt.dll. Mình cám ơn bạn nhiều vì đã giúp nhưng mà mình đã làm theo lời bạn nói nhưng tình trạng vẫn tiếp tục. Nếu bạn biết làm thế nào tiếp thì chỉ mình nha tại mình mới học c++ thôi.

  4. #4
    Ngày gia nhập
    09 2006
    Bài viết
    711

    "source information stripped" là hiển nhiên thôi, vì MS đâu có ngu để lại thông tin này trong debug info database file. Để lại cho hacker, reverser mò ra, tái tạo lại được source code của Windows à. Các file .pdb/.dbg của MS chỉ chứa public symbols thôi.
    Cấu trúc và sử dụng file .dbg, .pdb rất phức tạp, từ từ cậu sẽ biết. Bây giờ thì cậu cứ dùng VS để debug, file .pdb/.dbg nào sai thì VS sẽ tự động download lại. Còn cái khác thì kệ tía nó.

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    Quên nó đi, tiếp tục debug đi, chọn 1 dòng trong main rồi nhấn F9 trước khi nhấn F5

  6. #6
    Ngày gia nhập
    05 2007
    Bài viết
    5

    Mặc định Lập trình VC++ | Cách sử dụng symbols trong lập trình

    cám ơn mọi người

Các đề tài tương tự

  1. Lỗi could not read symbols: File in wrong format
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 2
    Bài viết cuối: 31-01-2011, 09:38 PM
  2. No symbols are loaded for any call stack frame. The source code cannot be displayed.
    Gửi bởi C&C++ trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 1
    Bài viết cuối: 02-08-2010, 11:22 PM
  3. thông báo lỗi "no symbols loaded"
    Gửi bởi manunited trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 21-05-2007, 01:58 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn