1. 對某一個變量感興趣的話,在啓動調試之後,直接對該變量“添加監視”,在調試窗口中即可看到該變量的變化;
  2. 查看指針指向的值

在VisualSVN Server 客户端如何操作檢查倉庫_應用程序

拷貝指針的值,將指針的值複製到“內存1”的地址文本框中,顯示的值默認為十六進制。

  1. 程序調試快捷鍵總結
  • Ctrl + F5直接運行程序,不調試
  • F5啓動調試,在Debug模式下運行程序
  • F10單步跳過
  • F11單步進入
  • Shift + F11跳出
  • F9插入、移除斷點
  • Shift + F5停止調試
  • Ctrl + Shift +F5重試調試
  1. “無法解析的外部符號”一般是要鏈接的外部函數查找失敗導致的
  2. 新建項目的“控制枱”/“桌面應用程序”區別在於“屬性->鏈接器->所有選項->子系統”的不同選項。

#pragma onece
... // 聲明、定義語句

等同於

#ifndef func
#def func
... // 聲明、定義語句
#endif

後者ifndef受C/C++語言標準的支持,不受編譯器的任何限制。

  1. 調試時,黃色箭頭表示下一個將要執行的代碼,可以移動黃色箭頭控制執行順序。
  2. 編譯器有諸多的優化選項,DebugRelease實際是優化級別的區別。
  • Debug好,Release崩,檢查是否有未初始化的變量,是否有數組越界
  • Release好,Debug崩,查找代碼中的assert
  1. PDB文件的作用

PDB文件的全稱是Program DataBase,用於存放Visual Studio(VS)編譯鏈接時生成的文件。PDB文件主要存儲了Visual Studio(VS)調試程序時所需要的基本信息,主要包括源文件名、變量名、函數名、棧指針、對應的行號等。因為存儲的是調試信息,所以一般情況下PDB文件是在Debug模式下才會生成;在VS中可以進行設置,在Release版本中也可以生成PDB文件。

當提供了PDB文件之後,在輸出的異常信息中,可以獲取出錯的文件、行號,便於定位錯誤,因此無論Debug還是Release都建議生成PDB文件(VS默認行為,區別在於Debug使用的開關為Debug: full,而Release使用的開關為Debug: pdbonly)

當選擇full時,VS可以直接附加應用程序,而pdbonly時VS只能用於檢查堆棧信息,如何確認pdb如何被調用?在“調試->窗口->模塊”,有一列表示符號狀態,如果顯示符號已經加載(Symbols loaded)則表示pdb正在被VS使用。

  1. 僅我的代碼Enable Just My Code

勾選“允許僅我的代碼”(默認)則VS不會加載除了PDB之外的其它PDB,造成的直接影響是無法在調試信息中看到“除我的代碼”之外的其它信息(如:在調用棧中僅能看到自己的代碼),大部分情況下“僅我的代碼”足矣。

  1. JIT優化

在Release模式下,當勾選“優化代碼”,則意味着實際生成的代碼和編寫的代碼會因為優化而不一致。這些優化一般是必須的,它使程序性能有所提升,但會增加調試難度,因為行號與實際運行的代碼不匹配。可以通過在調試設置中勾選“在模塊加載時取消JIT優化”來阻止代碼優化。