作者shihyu (shihyu)
看板LinuxDev
标题[问题] 被编译器优化无法使用gdb
时间Sun Oct 6 12:55:19 2019
最近使用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)
想请问一下有什麽办法解决这问题
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.104.30.127 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1570337721.A.E70.html
1F:推 chuegou: 我猜因为_src.dims() <= 2 不成立 10/08 08:40
2F:推 chuegou: 阿不对 抱歉看错 10/08 08:42
3F:推 yvb: 楼上的猜测, 我想应该很接近答案了. 10/09 21:57
4F:→ yvb: 去查CV_OCL_RUN(condition, func)的定义,且印出condition看看 10/09 21:57
5F:推 filiaslayers: 如果是被编译器最佳化,也有可能是执行顺序被改变了 10/12 12:42
6F:→ descent: -O0 应该没有做最佳化 11/27 00:03