2017-10-07 161 views
0

我有以下文件overflow.c,我試圖通過斷點調試Visual Studio代碼的MacOS調試C/C++語言不打斷點

#include <stdio.h> 

int main(void) { 
    int n = 1; 
    for (int i = 0; i < 64; i++) 
    { 
     printf("%i\n", n); 
     n = n * 2; 
    } 
    return 0; 
} 

我已經通過鍵入make overflow它建成終端,它返回

cc overflow.o -o overflow 

而且我可以做./overflow在終端運行它,它的工作原理。我安裝了Microsoft的C/C++擴展。我launch.json如下所示:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "name": "C Run", 
      "type": "cppdbg", 
      "request": "launch", 
      "program": "${workspaceRoot}/overflow", 
      "args": [], 
      "stopAtEntry": true, 
      "cwd": "${workspaceRoot}", 
      "environment": [], 
      "externalConsole": false, 
      "MIMode": "lldb" 
     } 
    ] 
} 

當調試使用「C運行」配置,它運行我的整個代碼沒有擊中任何我的斷點found here

的「C附加」的用於附加到已經運行的應用程序,這在這裏不適用。我已經添加了以下到我的PATH:

PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:${PATH}" 

我調試控制檯調試「C運行」配置負載一堆符號後,從我的報表打印輸出返回,並與

The program '/Users/ahlam/Downloads/workspace/overflow' has exited with code 0 (0x00000000). 

結束編輯:我也試過用C++,它有相同的行爲。製作了一個hello.cpp,使用g++ hello.cpp構建,調試只運行了整個代碼而沒有觸及任何斷點。

任何幫助表示讚賞。

+0

也許開始調試而不是運行? –

+0

我去了調試菜單,點擊綠色播放按鈕,將鼠標懸停在它上面,**開始調試**,所以我想我正在調試。你有什麼不同的工作流程? –

回答

1

您需要生成源代碼級調試信息,您可以通過在clang使用-g標誌做:

clang -g overflow.c -o overflow 

做那,而不是make overflow。您會在目錄中看到名爲overflow.dSYM的文件夾。調試現在應該可以工作。