如何获取源代码(C ++)中深层变量的值? (例如,haar.cpp中的stage_sum值,OpenCV)

时间:2012-04-09 13:24:20

标签: c++ opencv

我想从一个位于OpenCV库源代码中的变量中获取值。具体来说,我正在尝试从文件haar.cpp中打印出stage_sum的值。我的起点facedetect.cpp调用方法detectMultiScale,然后调用函数cvHaarDetectObjects,它调用cvHaarDetectObjectsForROC等,直到它最终到达函数cvRunHaarClassifierCascadeSum,其中计算了stage_sum。

有没有办法可以轻松地将值输出到facedetect.cpp,而无需更改所有前面的函数/方法,标题等的声明?只是尝试在源代码中直接cout或printf值没有给出任何结果。

感谢大家的帮助!

2 个答案:

答案 0 :(得分:2)

一种选择就是使用调试器。

但是,如果您想以编程方式执行此操作(即将变量作为应用程序代码的一部分进行访问),那么除非变量在库的公共接口中公开,否则有两个选项:

  • 修改库的源代码,然后重新编译它。
  • 诉诸于未定义的行为(摆弄构成对象的原始字节等)。

答案 1 :(得分:0)

指出显而易见的是,在 haar.cpp 中添加std::cout()printf()调用将无法解决问题。您需要重新编译 OpenCV才能使此更改生效,然后重新安装系统上的库。