2017-01-16 2 views
1

Моя версия os - sierra 10.12.1 и версия для версии 1.8.1. Я установил плагин C++ в vs-коде. И затем я создал проект C++. Был мой исходный файл C++.vs code 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 ** **** конец ****** \ п», стандартный вывод); return 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) задачи Run -> cmake и затем: make