溫馨提示×

Ubuntu下C++代碼調試有哪些技巧

小樊
52
2025-06-11 23:39:21
欄目: 編程語言

在Ubuntu下調試C++代碼,可以使用多種工具和方法。以下是一些常用的技巧和步驟:

使用GDB調試C++程序

  1. 安裝GDB: 首先,確保系統已經安裝了GDB。如果沒有安裝,可以使用以下命令進行安裝:

    sudo apt update
    sudo apt install gdb
    
  2. 編譯程序時包含調試信息: 在編譯C++源代碼時,需要加上 -g 參數來確保生成的可執行文件包含了調試信息。例如:

    g++ -g -o my_program my_program.cpp
    
  3. 啟動GDB調試程序: 使用以下命令啟動GDB并加載你的程序:

    gdb my_program
    
  4. 設置斷點: 在GDB中,可以使用 break 命令在指定行設置斷點。例如,在 main 函數處設置斷點:

    break main
    

    或者在特定函數或行號設置斷點:

    break my_program.cpp:42
    
  5. 運行程序: 使用 run 命令啟動程序。如果設置了斷點,程序將在斷點處停止:

    run
    
  6. 調試操作

    • listl:顯示源代碼。
    • nextn:執行下一行代碼,但不進入函數內部。
    • steps:執行下一行代碼,并進入函數內部。
    • continuec:繼續執行程序直到下一個斷點。
    • printp:打印變量的值。例如,打印變量 x 的值:
      print x
      
    • backtracebt:顯示當前的調用堆棧。
    • framef:選擇堆棧幀。例如,選擇堆棧中的第7幀:
      frame 7
      
    • watch:監視表達式的值。當表達式的值發生更改時,程序將暫停。
  7. 退出GDB: 使用 quit 命令退出GDB。

使用Visual Studio Code進行調試

  1. 安裝必要的軟件和組件

    • 安裝Visual Studio Code。
    • 打開VS Code,在擴展市場中搜索“C/C”,然后安裝由Microsoft提供的擴展。
    • 確保已經安裝了GCC和GDB。
  2. 配置調試環境

    • 在VS Code中創建一個新的文件夾作為工程目錄,并在其中創建一個簡單的C++源文件,例如 main.cpp。
    • 按下 Ctrl+Shift+P 打開命令面板,輸入 Tasks: Configure Task,然后選擇 Create tasks.json file from template。選擇 Others,這將創建一個 tasks.json 文件,內容如下:
      {
        "version": "2.0.0",
        "tasks": [
          {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
              "-g",
              "-O0",
              "{file}",
              "-std=c++17",
              "-o",
              "{fileBasenameNoExtension}"
            ],
            "group": {
              "kind": "build",
              "isDefault": true
            },
            "problemMatcher": [
              "gcc"
            ]
          }
        ]
      }
      
    • 按下 Ctrl+Shift+D 打開調試視圖,點擊齒輪圖標打開 launch.json 配置文件。選擇 C (GDB/LLDB),這將創建一個默認的調試配置。你可以根據需要修改它。
  3. 添加斷點: 在 main.cpp 文件中,在你想要調試的代碼行左側點擊,設置斷點。

  4. 啟動調試: 點擊調試視圖中的綠色三角形按鈕(或按下 F5 鍵)開始調試。程序將在第一個斷點處停止。

  5. 使用GDB命令進行調試: 程序停止后,你可以使用GDB的各種命令進行調試,例如:

    • listl:顯示源代碼。
    • breakb:設置斷點。
    • runr:啟動程序。
    • nextn:執行下一行代碼,但不進入函數。
    • steps:執行下一行代碼,如果是函數調用,則進入函數。
    • continuec:從當前位置繼續執行程序,直到遇到下一個斷點。
    • finish:執行完當前函數并返回到調用者。
    • printp:打印變量的值。
    • backtracebt:顯示當前調用堆棧。
    • framef:選擇堆棧幀。
    • watch:監視表達式的值。

通過以上步驟,你可以在Ubuntu上使用GDB或Visual Studio Code進行C++程序的調試。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女