查看: 2091|回复: 10

如何进行源码调试

[复制链接]

该用户从未签到

发表于 2012-5-7 21:35:29 | 显示全部楼层 |阅读模式

      最近在看array的《最长的一帧》,很想深入源码调试,但编译出来的库无法进行调试,不知道大家有没有什么好办法,还望不



宁赐教,谢谢大家!

该用户从未签到

发表于 2012-5-8 18:07:19 | 显示全部楼层
对于生成的dll,要有与其配套的pdb文件。再在VC开发环境中,把“源文件”这添加OSG源码的src路径

该用户从未签到

 楼主| 发表于 2012-5-8 22:29:24 | 显示全部楼层
justwww 发表于 2012-5-8 18:07
对于生成的dll,要有与其配套的pdb文件。再在VC开发环境中,把“源文件”这添加OSG源码的src路径

非常感谢您的回答!弱问一句,“源文件”具体在哪个选项下?

该用户从未签到

 楼主| 发表于 2012-5-8 23:29:38 | 显示全部楼层
justwww 发表于 2012-5-8 18:07
对于生成的dll,要有与其配套的pdb文件。再在VC开发环境中,把“源文件”这添加OSG源码的src路径

在项目与解决方案中,VC++目录中找到了源文件这一项,可添加路径,不知是不是这个?另外,每个dll都要pdb文件吗?比如osg80-osgViewerd.dll得有osg80-osgViewerd.pdb?我删过一次pdb文件,不知道是不是删除了……

该用户从未签到

发表于 2012-5-9 08:24:31 | 显示全部楼层
是这个,就和平时配置额外的include目录的地方在一起。
只需要你想调试的那些DLL的PDB文件就行。

加载PDB后的区别,你可以在“调用堆栈”窗口看到。
也可以在“模块”窗口手动加载PDB文件。

该用户从未签到

 楼主| 发表于 2012-5-10 21:33:47 | 显示全部楼层
justwww 发表于 2012-5-9 08:24
是这个,就和平时配置额外的include目录的地方在一起。
只需要你想调试的那些DLL的PDB文件就行。

谢谢,我准备把OSG再编译一次,看有没有pdb文件。我上两天按照您的方法调试了一下,发现还是不行,不知道是不是因为没有pdb文件的缘故,再试试。

该用户从未签到

 楼主| 发表于 2012-5-10 23:09:33 | 显示全部楼层
justwww 发表于 2012-5-9 08:24
是这个,就和平时配置额外的include目录的地方在一起。
只需要你想调试的那些DLL的PDB文件就行。

重新编译了一遍,添加源文件,设置断点,但是出现了“当前不会命中断点,还没有为该文档加载任何符号”的错误,无法调试,不知道您是否碰到过这种情况?

该用户从未签到

发表于 2012-5-11 00:06:45 | 显示全部楼层
1,pdb要和dll放在一起,或者你额外指定“调试符号路径”
2,有的release版本没有生成符号文件。
3,断点是你自己随便加的,你程序的运行流程根本不会走到你这个断点上。

该用户从未签到

 楼主| 发表于 2012-5-11 09:46:57 来自手机 | 显示全部楼层
justwww 发表于 2012-5-11 00:06  1,pdb要和dll放在一起,或者你额外指定“调试符号路径”  2,有的release版本没有生成符号文件。  3,断点 ...

谢谢您的帮助!三方面:
1,dll和pdb放在同一个文件夹下
2,我没有生成release版本的dll
3,这一点有点没理解,对vs设置不熟。是这样,我把断点设在viewerbase的run函数,出现那个问题,是我关联的原文件不对,还是没有pdb造成的?这个错误让我还是没法调试源代码……

该用户从未签到

发表于 2012-5-12 21:03:29 | 显示全部楼层
你编译完osg后看看osg自身的这些工程是怎么设置的。
偷懒的办法就是直接注释掉osg的那么例子代码,直接改成你要运行的代码,呵呵。
这样对于窥探osg足够了,但是最好还是仔细学习下怎么进行源代码调试吧。

该用户从未签到

 楼主| 发表于 2012-5-12 22:42:22 | 显示全部楼层
sky11811 发表于 2012-5-12 21:03
你编译完osg后看看osg自身的这些工程是怎么设置的。
偷懒的办法就是直接注释掉osg的那么例子代码,直接改成 ...

直接改例子程序?那样那个工程会不会很庞大,虽然可以调试,但生成的时间是不是需要很长时间?看它自身的工程怎么设置,这是个好办法,谢谢您的解答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表