При отладке файлов C / C ++ с помощью кода Visual Studio поток программы переходит в crtexe.c при нажатии клавиши «step over» или «step into» из строки с «}» главной функции.
Однако, если продолжить отладку в crtexe.c, поток просто останавливается на строке if (!managedapp)
и не возвращается к функции main ().
Если я нажму кнопку «выйти» в строке «}» функции main (), появится сообщение об ошибке «Невозможно выйти. Операция завершилась ошибкой с кодом ошибки 0x80004004» .
Я тестировал тот же код в другой IDE, например, CLion или NetBeans, но этих проблем не возникало.
Я использую MinGW-w64 GCC и GDB. Как мне решить эту проблему?
Пример кода (main.c):
#include <stdio.h>
int main()
{
printf("Call main()\n");
int num1 = 1;
int num2 = 20;
int num3 = num1 + num2;
printf("%d\n", num3);
return 0;
}
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "GDB Launch",
"type": "cppdbg",
"request": "launch",
"program": "C:/Users/.../main.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:/Users/...",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:/msys2/mingw64/bin/gdb.exe",
"sourceFileMap": {
"/c/": "C:/"
}
}
]
}