作者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://www.ptt.cc/bbs/LinuxDev/M.1570337721.A.E70.html
推 chuegou: 我猜因為_src.dims() <= 2 不成立 10/08 08:40
推 chuegou: 阿不對 抱歉看錯 10/08 08:42
推 yvb: 樓上的猜測, 我想應該很接近答案了. 10/09 21:57
→ yvb: 去查CV_OCL_RUN(condition, func)的定義,且印出condition看看 10/09 21:57
推 filiaslayers: 如果是被編譯器最佳化,也有可能是執行順序被改變了 10/12 12:42
→ descent: -O0 應該沒有做最佳化 11/27 00:03