有没有适合检查动态链接库内存问题的工具

kingstarer 2011-07-02 11:02:19
最近写的c++代码,都是要编译成动态链接库让另一个常驻程序根据调度命令加载的

而另一个程序是无法控制的(root启动的)

在网上找了一下Valgrind的教程 发现它是需要用Valgrind来启动程序 不符合我要求

不知道有没有其它工具适用于检查动态链接库的代码有没有内存泄露、越界访问(这个比较重要)
...全文
106 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingstarer 2011-11-20
  • 打赏
  • 举报
回复
没有好的方案,先结贴


目前只能在代码上尽量控制
quwei197874 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhao4zhong1 的回复:]
heapwalk
liveheap
[/Quote]++
赵4老师 2011-09-26
  • 打赏
  • 举报
回复
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
赵4老师 2011-09-26
  • 打赏
  • 举报
回复
参考MSDN例子pwalk
kingstarer 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luciferisnotsatan 的回复:]
自己写个测试程序加载你的库不就行了。
[/Quote]
这个试过 但是加载之后运行不了

在库里面有一些api是与框架程序(就是我在前面说到的常驻进程)耦合比较高的

运行到这些api时会出错
kingstarer 2011-07-04
  • 打赏
  • 举报
回复
好像没人注意到这个问题
赵4老师 2011-07-04
  • 打赏
  • 举报
回复
越界检查请先多分配几个字节作为‘界’,然后在这个‘界’上设置内存读/写断点。
luciferisnotsatan 2011-07-04
  • 打赏
  • 举报
回复
自己写个测试程序加载你的库不就行了。
kingstarer 2011-07-04
  • 打赏
  • 举报
回复
静态代码检查试过 对于内存泄漏检查比较令人满意 但对于越界检查效果较差


感觉这种越界的还是动态检查的效果会好一些
就想叫yoko 2011-07-04
  • 打赏
  • 举报
回复
用静态检查代码的检查检查
kingstarer 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]
做个测试程序,就能控制了
[/Quote]
做不了测试程序 动态库里面用到了大量服务器的api(以类似于嵌入式sql的形式提供)

我试过如果自己写的程序调用会出现莫名的错误提示

还是考虑只对动态库进行处理的情况吧

运行环境是aix
ouyh12345 2011-07-04
  • 打赏
  • 举报
回复
做个测试程序,就能控制了
赵4老师 2011-07-04
  • 打赏
  • 举报
回复
heapwalk
liveheap

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧