#c #image #visual-studio-code #vscode-debugger
#c #изображение #visual-studio-code #vscode-отладчик
Вопрос:
Я столкнулся с проблемой с отладчиком VSCode, и до сих пор я искал и пробовал много вещей, но не смог ее решить! Пожалуйста, помогите
Проблема в том , что ..
Когда я запускаю простую программу, которая загружает только изображение и показывает его подробные параметры, такие как ширина и высота (строки и столбцы), она работает нормально, и я получаю значения параметров БЕЗ ИСПОЛЬЗОВАНИЯ ОТЛАДЧИКА
но когда я запускаю его с помощью отладчика, программа по-прежнему успешно выполняется без каких-либо ошибок в конце, но значения параметров перепутаны. Все значения, такие как (ширина изображения, высота, каналы), равны нулям. Интересно, почему?
мой main.cpp выглядит примерно так
#include <iostream>
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
using namespace std;
int main()
{
int width, height, channels;
uint8_t *img;
cout<<"loading the image"<<endl;
img = stbi_load("backside1.jpg", amp;width, amp;height, amp;channels, 3);
stbi_image_free(img);
cout<<width<<endl;
cout<<"end of the program"<<endl;
return 0;
}
вывод без использования отладчика
мой файл launch.json выглядит следующим образом
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g .exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "D:\installed_softwares\mingw\mingw64\bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\installed_softwares\mingw\mingw64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C : g .exe build active file"
}
]
}
точки останова устанавливаются внутри главного окна файла!
Пожалуйста, обратите внимание на эти моменты
- путь к ячейке mingw64 задается внутри переменных среды
- я пробовал то же самое на своей ОС Linux, там та же проблема. или я тоже пропускаю то же самое
- в настоящее время я использую библиотеку «stb_image», я также пробовал ее с opencv в моей ОС Linux.
Я уже потратил много времени на ее решение, сейчас мне нужна ваша помощь! заранее спасибо, что уделили свое время!
Комментарии:
1. Так что на данный момент в вопросе недостаточно информации для постановки диагноза. Я бы посоветовал: 1. Использовать linux 2. запустить исполняемый файл отладки в командной строке с помощью gdb ( youtube.com/watch?v=PorfLSr3DDI для учебника) 3. Вы не проверяете, является ли img != null, если это null, тогда используйте stbi_failure_reason, как описано здесь: github.com/nothings/stb/blob/master/stb_image.h
2. @DaniyalYasin 1. я сталкиваюсь с аналогичной проблемой в Linux при использовании opencv. 2. это действительно помогло, большое спасибо. используя gdb из командной строки, я получаю правильные результаты. но есть ли способ решить проблему с отладкой vscode? это будет намного лучше! 3. это всего лишь демонстрационный файл, который иллюстрирует проблему, с которой я сталкиваюсь в своем проекте
3. Если вы видите значения в командной строке gdb, то это проблема с конфигурацией vscode. Вы уверены, что выполняете «отладочную» сборку с помощью vscode?
4. да, я уверен в этом. на самом деле подтверждено много раз