Точка останова игнорируется, поскольку проект C преобразуется в проект C ++ - PullRequest
0 голосов
/ 07 августа 2020

Тип: Отладчик

мой отладчик: GNU gdb (GDB) 8.1

Опишите ошибку:

ОС и версия: Windows 10 x64 10.0.18363

Версия кода VS: 1.47.3

Версия расширения C / C ++: v0.30.0-insiders

Другие установленные вами расширения (и если проблема не исчезнет после их отключения): Bracket Pair Colorizer 2 Генератор проектов C / C ++ (я использую его для создания make-файла проекта) Code Runner Debug Visualizer

Четкое и краткое описание ошибки. Отладка может нормально видеть желтый директор, когда я отлаживаю свои проекты C (2 c файлов, 1 головной файл), по некоторым причинам мне нужно, чтобы мои файлы c изменились на файлы cpp и снова сделали и отладили , то я обнаружил, что директор исчез, а красная точка разрыва стала серой, я пытаюсь изменить свой компилятор с g cc на g ++, чтобы решить эту проблему, но это не работает.

Шаги для воспроизведения поведения:

1. переименуйте все файлы c как cpp файлы и измените команду компилятора в make-файле с g cc на g ++.

2. Нажмите Ctrl + F5 для отладки.

3.Термирал: '.

Executing task: powershell -c mingw32-make <

g++ -std=c++17 -Wall -Wextra -g -Iinclude -Llib src/tree.o src/petclub.o -o bin/main.exe

Terminal will be reused by tasks, press any key to close it....'

4. директор исчезает, а красная точка перерыва становится серой.

Структура моего проекта C ++:

 D:.
    │ Makefile
    │
    ├─.vscode
    │ launch.json
    │ tasks.json
    │
    ├─bin
    │ main.exe
    │
    ├─include
    ├─lib
    └─src
    petclub.cpp
    petclub.o
    tree.cpp
    tree.h
    tree.o

запуск. json

   {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "linux": {
                "MIMode": "gdb",
                "miDebuggerPath": "gdb",
                "program": "${workspaceFolder}/bin/main"
            },
            "osx": {
                "MIMode": "lldb",
                "miDebuggerPath": "lldb-mi",
                "program": "${workspaceFolder}/bin/main"
            },
            "windows": {
                "MIMode": "gdb",
                "miDebuggerPath": "gdb.exe",
                "program": "${workspaceFolder}/bin/main.exe"
            },
            "preLaunchTask": "build"
        }
    ]
}

makefile

CC := g++
CFLAGS := -std=c++17 -Wall -Wextra -g

BIN := bin
SRC := src
INCLUDE := include
LIB := lib

LIBRARIES :=

ifeq ($(OS),Windows_NT)
EXECUTABLE := main.exe
SOURCEDIRS := $(SRC)
INCLUDEDIRS := $(INCLUDE)
LIBDIRS := $(LIB)
else
EXECUTABLE := main
SOURCEDIRS := $(shell find $(SRC) -type d)
INCLUDEDIRS := $(shell find $(INCLUDE) -type d)
LIBDIRS := $(shell find $(LIB) -type d)
endif

CINCLUDES := $(patsubst %,-I%, $(INCLUDEDIRS:%/=%))
CLIBS := $(patsubst %,-L%, $(LIBDIRS:%/=%))

SOURCES := $(wildcard $(patsubst %,%/*.cpp, $(SOURCEDIRS)))
OBJECTS := $(SOURCES:.cpp=.o)

all: $(BIN)/$(EXECUTABLE)

.PHONY: clean
clean:
-$(RM) $(BIN)/$(EXECUTABLE)
-$(RM) $(OBJECTS)

run: all
./$(BIN)/$(EXECUTABLE)

$(BIN)/$(EXECUTABLE): $(OBJECTS)
$(CC) $(CFLAGS) $(CINCLUDES) $(CLIBS) $^ -o $@ $(LIBRARIES)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...