小编Fab*_*ino的帖子

如何在调试时观察多个变量而不会在断点处停止?

假设我有一个复杂的 C++ 应用程序,我需要使用大量变量进行调试。我想避免使用std::coutprintf方法(下面有解释原因)。

为了解释我的问题,我写了一个最小的例子chrono (这个程序fps随着时间的推移计算它的 while 循环并递增i_times计数器直到它达到 10k)

#include <chrono>

using chrono_hclock = std::chrono::high_resolution_clock;

int main(int argc, char** argv){
    bool is_running = true;
    float fps;
    int i_times=0;
    chrono_hclock::time_point start;
    chrono_hclock::time_point end;

    while(is_running){
         start = chrono_hclock::now();

         // Some code execution

         end = chrono_hclock::now();

         fps=(float)1e9/(float)std::chrono::duration_cast<std::chrono::nanoseconds>(end-start).count());
         if(++i_times==10000) is_running=false;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想调试这个程序并随着时间的推移不断观察fpsi_times变量,而不停止执行

当然,我可以简单地使用std::cout,printf或其他方法来输出变量值,stdout在调试时将它们重定向到文件或文件,这些对于简单类型来说是可以的,但是我有多个变量,其数据类型是基于结构的,这会令人毛骨悚然,而且耗时和代码膨胀来编写指令来打印它们中的每一个。此外,我的应用程序是使用 RTSP 协议进行流式传输的实时视频/音频 H.264 编码器,并且在断点处停止意味着在我的其他解码器应用程序中可视化工件,因为编码器无法跟上解码器(因为编码器遇到了断点)。

我该如何解决这个问题? …

c++ ide debugging

3
推荐指数
1
解决办法
321
查看次数

标签 统计

c++ ×1

debugging ×1

ide ×1