[问题] 被编译器优化无法使用gdb

楼主: shihyu (shihyu)   2019-10-06 12:55:19
最近使用gdb 去追踪opencv
我编译opencv 参数是 -g -O0 -ggdb3
但是我发现有些函数进不去感觉是被编译器优化
ocl_remap 函数gdb 无法进入 , 被当作函数参数的函数会被优化?
CV_OCL_RUN(_src.dims() <= 2 && _dst.isUMat(),ocl_remap(_src, _dst, _map1, _map2, interpolation, borderType, borderValue))
如果把程式码拆成两行gdb 是可以正常进去ocl_remap
bool ocl_remap_result = ocl_remap(_src, _dst, _map1, _map2, interpolation, borderType, borderValue);
CV_OCL_RUN(_src.dims() <= 2 && _dst.isUMat(), ocl_remap_result)
想请问一下有什么办法解决这问题
谢谢
作者: chuegou (chuegou)   2019-10-08 08:40:00
我猜因为_src.dims() <= 2 不成立阿不对 抱歉看错
作者: yvb   2019-10-09 21:57:00
楼上的猜测, 我想应该很接近答案了.去查CV_OCL_RUN(condition, func)的定义,且印出condition看看
作者: filiaslayers (司马云)   2019-10-12 12:42:00
如果是被编译器最佳化,也有可能是执行顺序被改变了
作者: descent (“雄辩是银,沉默是金”)   2019-11-27 00:03:00
-O0 应该没有做最佳化

Links booklink

Contact Us: admin [ a t ] ucptt.com