2017-01-16 32 views
1

我的os版本是sierra 10.12.1而vs代码版本是1.8.1。我在vs代码中安装了C++插件。然后我创建了一个C++项目。 有我的C++源文件。vs代码C++断点无法在mac中工作

my_simple.cc

int main(int argc, char const *argv[]) 
{ 
    printf("%s\n", "******begin******"); 
    int a = 1; 
    int b = a; 
    printf("%s\n", "******end******"); 
    return 0; 
} 

launch.json

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "preLaunchTask": "pre_compile", 
      "showDisplayString": true, 
      "name": "my_debug", 
      "type": "cppdbg", 
      "request": "launch", 
      "program": "${file}.o", 
      "args": [], 
      "stopAtEntry": false, 
      "cwd": "${workspaceRoot}", 
      "environment": [], 
      "externalConsole": false, 
      "osx": { 
       "MIMode": "lldb" 
      } 
     } 
    ] 
} 

tasks.json

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "0.1.0", 
    "command": "g++", 
    "isShellCommand": true, 
    "args": [ 
    ], 
    "showOutput": "always", 
    "echoCommand": true, 
    "suppressTaskName": true, 
    "tasks": [ 
     { 
      "taskName": "pre_compile", 
      "args": [ 
       "${file}", 
       "-o${file}.o" 
      ], 
      "isBuildCommand": true 
     } 
    ] 
} 

当我添加一些断点my_simple.cc,然后按F5键编译和运行。断点没有按预期工作。请帮我找到我的代码中的错误。感谢

+0

你在哪里设置断点?编译器可能会优化变量不存在(您从不使用它们)。 –

+0

请注意,编译器*可以*优化你的函数:int main(int argc,char const * argv []) { fputs(“****** begin ****** \ n ** ****端****** \ n”个,标准输出);返回0 }' - 但是这种侵略程度是不寻常的。 –

+0

我尝试添加'printf(“%i \ n”,b);',然后设置断点。但是断点仍然无法工作。 – user4468848

回答

1

1)创建具有新CMakeList.txt:

cmake_minimum_required(VERSION 3.0) 
project(FirstProgram) 
set(SOURCE Hello.cpp) 
add_executable(${PROJECT_NAME} ${SOURCE}) 

2)Task.json:

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "0.1.0", 
    "command": "sh", 
    "isShellCommand": true, 
    "args": ["-c"], 
    "showOutput": "always", 
    "suppressTaskName": true, 
    "options": { 
     "cwd": "${workspaceRoot}/build" 
    }, 
    "tasks": [ 
     { 
      "taskName": "cmake", 
      "args": ["cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug .."]  
     }, 
     { 
      "taskName": "make", 
      "args": ["make -j 8"], 
      "isBuildCommand": true    
     } 
    ] 
} 

3)launch.json:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 

      "showDisplayString": true, 
      "name": "(lldb) Launch", 
      "type": "cppdbg", 
      "request": "launch", 
      "program": "${workspaceRoot}/Build/FirstProgram", 
      "args": [], 
      "stopAtEntry": false, 
      "cwd": "${workspaceRoot}", 
      "environment": [], 
      "externalConsole": false, 
      "MIMode": "lldb" 
     } 
    ] 
} 

4)任务运行 - > cmake然后:make

相关问题