Проблема отладки VSCode с данными изображений в c

#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"
        }
    ]
}
 

вывод с помощью отладчика

точки останова устанавливаются внутри главного окна файла!

Пожалуйста, обратите внимание на эти моменты

  1. путь к ячейке mingw64 задается внутри переменных среды
  2. я пробовал то же самое на своей ОС Linux, там та же проблема. или я тоже пропускаю то же самое
  3. в настоящее время я использую библиотеку «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. да, я уверен в этом. на самом деле подтверждено много раз