SWIG 在 Windows 平台上的调试
Posted kuliuheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SWIG 在 Windows 平台上的调试相关的知识,希望对你有一定的参考价值。
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 平台上的调试的主要内容,如果未能解决你的问题,请参考以下文章
Windows下通过ARM目标板上的gdbserver进行远程调试的方法
在 Mac 上的 Python 2.7.3 中导入 .pyd(使用 SWIG 创建)
在 Microsoft Azure 平台虚拟机上调试 Windows 内核