1. 程式人生 > >SWIG 在 Windows 平臺上的調試

SWIG 在 Windows 平臺上的調試

font arm path 驗證 java mta abs rtu UNC

1、VS調試

  用VS2015(其他版本應該也可以,未驗證)調試SWIG,默認會發現SWIG源碼中的Node*都看不到內容,因為Node類型其實是Void,VS沒法直接識別的。好在SWIG自身封裝了一個很棒的方法叫做Swig_print_node(在tree.c文件中)可以隨時打印運行時的Node*,我原來的想法是運行之前先插入打印語句,這肯定不便於調試,這時候VS牛逼的功能浮出了水面,用“即時窗口”功能,直接輸入函數可以動態運行:

技術分享圖片

2、SWIG 節點內容

  這裏先給一個示例,後續再不斷研究其含義:

+++ cdecl - 000000000FC62880 ----------------------------------------
| value        - "
0" | feature:director:except - "0" | feature:java:const - "1" | name - "OnNewRoute" | ismember - "1" | sym:symtab - 000000000CAB6B50 | classDirectorMethods:type - "void" | kind - "function" | sym:name - "onNewRoute" | returntype - "void" | view - "classDirectorMethods
" | feature:package - "com.autonavi.gbl.route.observer" | decl - "f(int32_t,bl::RouteResultType,p.bl::IPathResult,uint64_t,bool)." | feature:j2creflect - "0" | access - "public" | feature:java:enum - "typeunsafe" | parms - int32_t mode,bl::RouteResultType type,bl::IPathResult *pathResult,uint64_t externData,bool
isLocal | abstract - "1" | type - "void" | storage - "virtual" | sym:overname - "__SWIG_0" | tmap:jstype - "void" | valuetype - "int" |

SWIG 在 Windows 平臺上的調試