调试问题!谢谢

ks9960 2004-11-12 06:07:26
一个已正常运行1年的系统,重新编译后每运行6-10小时就要僵死,打印调试看不出问题,用strace跟踪也无太大效果.主要表现为一个用共享内存实现的队列被填满后就无法正常处理了(死锁?)。大家有什么好的建议,方法。不胜感激!
...全文
231 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ks9960 2004-11-21
  • 打赏
  • 举报
回复
现在发现问题是在进入handler后分配了一个4k的数组,由于这个handler调用很频繁…………。
但是很不解为什么会在这出问题,现在把这个数组作为全局量以后已经不僵死了。
那位可以解释一二?谢谢
(周5结贴)
gettext 2004-11-20
  • 打赏
  • 举报
回复
可能的原因太多,有可能是数组越界或其他memory的非法操作把你的handler指针破坏了,所以要确保你handler所指的是不是你要调用的函数。
ks9960 2004-11-20
  • 打赏
  • 举报
回复
谢谢 gettext(冰雪之崖)。
那一般会是什么原因让这个处理函数被破坏了呢?有办法检查吗。(程序是运行一段时间后才停下来的)
gettext 2004-11-20
  • 打赏
  • 举报
回复
你的问题不一定是内存泄露引起的, 既然是handler的问题,看看你的handler是不是corrupt掉了。
ks9960 2004-11-20
  • 打赏
  • 举报
回复
嗯。太谢谢了。
我去看一下怎么确认这个地址。 gettext(冰雪之崖) 有什么好方法吗?^-^
ks9960 2004-11-18
  • 打赏
  • 举报
回复
基本上看出问题.发现在进入一个handler函数定义局部变量时就僵死了。
另外程序中只在很少的地方使用了malloc,而且都确保free了,不知道是不是还有其它原因造成内存泄露…………。
大家有什么建议了?谢谢!
ks9960 2004-11-17
  • 打赏
  • 举报
回复
谢谢兄弟们了,我这就去看gdb的手册.
gaoxianfeng 2004-11-17
  • 打赏
  • 举报
回复
gdb的功能不只是单步跟踪。用gdb运行你的程序,直到出问题,然后再Ctrl-C, 看程序停什么地方。

这个时候

还可以输入watch等命令 看看堆栈
idlepro 2004-11-17
  • 打赏
  • 举报
回复
ElectricFence等工具可以检测内存泄漏
gettext 2004-11-17
  • 打赏
  • 举报
回复
gdb的功能不只是单步跟踪。用gdb运行你的程序,直到出问题,然后再Ctrl-C, 看程序停什么地方。
gettext 2004-11-16
  • 打赏
  • 举报
回复
出现问题时你查过内存吗?如果出现问题时系统无异常现象应该不是内存泄漏。你为什么不用gdb跟踪一下看锁在什么地方呢?
测内存泄漏可以用memprof,如果你安装memprof的包了的话。
ks9960 2004-11-16
  • 打赏
  • 举报
回复
help. thanks
ks9960 2004-11-16
  • 打赏
  • 举报
回复
在网上找了个例子
#include <mcheck.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *hello;
mtrace();
hello = (char*) malloc(20);
sprintf(hello," hello world!");
return 1;
}

export MALLOC_TRACE=mtrace.log

mtrace mymtrace mtrace.log
发现没有mtrace这个脚本(from “man trace”: So glibc comes with a perl-script call mtrace to make sense of it.)
只在/usr/bin/有个kmtrace.这个东西也没有man.也没有找到好的readme.郁闷。
xfzhao_cn() 有什么建议?谢谢!
(os redhat 8.0 2.4.18-14)
xfzhao_cn 2004-11-16
  • 打赏
  • 举报
回复
man mtrace
ks9960 2004-11-16
  • 打赏
  • 举报
回复
memprof是一个需要GNOME的工具,我现在只能远程登录…………
在看看Valgrind的编译吧
ks9960 2004-11-16
  • 打赏
  • 举报
回复
出现问题时没有异常现象,free memory有20多M。

因为不是马上出现问题,gdb该怎么跟踪了?

如果说锁住的话,表现为读取进程没有停(另外的一个进程通过管道发控制信号给他让他读),但是就是不做任何动作了,strace的log也表现出进程僵在那,但就是定位不到是在那个地方停了。

memprof.我看看。

谢谢!
ks9960 2004-11-14
  • 打赏
  • 举报
回复
Valgrind这个东西编译不过。
下载了一个valgrind-2.2.0.tar.bz2的包,
解压后
用root权限执行./configure 成功
执行make 失败 有如下错误
***************************************************************
# make
make all-recursive
make[1]: Entering directory `/home/work/valgrind-2.2.0'
Making all in include
make[2]: Entering directory `/home/work/valgrind-2.2.0/include'
make all-am
make[3]: Entering directory `/home/work/valgrind-2.2.0/include'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/work/valgrind-2.2.0/include'
make[2]: Leaving directory `/home/work/valgrind-2.2.0/include'
Making all in coregrind
make[2]: Entering directory `/home/work/valgrind-2.2.0/coregrind'
make all-recursive
make[3]: Entering directory `/home/work/valgrind-2.2.0/coregrind'
Making all in x86
make[4]: Entering directory `/home/work/valgrind-2.2.0/coregrind/x86'
make all-am
make[5]: Entering directory `/home/work/valgrind-2.2.0/coregrind/x86'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/home/work/valgrind-2.2.0/coregrind/x86'
make[4]: Leaving directory `/home/work/valgrind-2.2.0/coregrind/x86'
Making all in demangle
make[4]: Entering directory `/home/work/valgrind-2.2.0/coregrind/demangle'
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../coregrind -I../../coregrind -I../../include -I../../include -Winline -Wall -Wshadow -O -fomit-frame-pointer -g -Wno-unused -Wno-shadow -MT cp-demangle.o -MD -MP -MF ".deps/cp-demangle.Tpo" -c -o cp-demangle.o cp-demangle.c; \
then mv -f ".deps/cp-demangle.Tpo" ".deps/cp-demangle.Po"; else rm -f ".deps/cp-demangle.Tpo"; exit 1; fi
/tmp/ccwApXXB.s: Assembler messages:
/tmp/ccwApXXB.s:460: Warning: Unrecognized .section attribute: want a,w,x
/tmp/ccwApXXB.s:460: Warning: Unrecognized .section attribute: want a,w,x
/tmp/ccwApXXB.s:460: Error: Rest of line ignored. First ignored character is `,'.
/tmp/ccwApXXB.s:1736: Warning: Unrecognized .section attribute: want a,w,x
…………
*******************************************************************************

有谁用过这个东西吗?谢谢!
ks9960 2004-11-13
  • 打赏
  • 举报
回复
谢谢各位!
内存泄露?那我又该如何检测出是那个模块发生了内存泄漏了。有什么方法或工具?谢谢!
(系统是redhat8,数据库是oracle9,有2个cpu,只跑了这个c程序,出现问题时系统无异常现象。)
redex 2004-11-13
  • 打赏
  • 举报
回复
linux下好象带有一个内存检测工具,从图形界面下可以访问到。
xfzhao_cn 2004-11-12
  • 打赏
  • 举报
回复
我看也是内存泄漏的问题,可以逐个模块的内存泄漏测试一下,应该会有发现的。:)
加载更多回复(1)
Domain4.3(明小子)10.10.10更新版主要更新内容如下: 1.驱除部分死连接,恢复部分官方连接 2.改变默认显示页面为本人BLOG 3.修正程序在检测时出错的BUG 4.修正程序在部分系统中无法启动的BUG 5.加了一个功能模块,但还不成熟,隐藏了,高手的话可以用OD调出来!>!< 6.修复前段时间一些朋友反映的错误和程序宏 7.增加四款SKN皮肤! 10.10.11紧急更新: 1.修正新版程序在部分系统中启动后直接导致系统蓝屏的BUG 2.修正域名查询的几个错误 3.修正程序批量检测查询到域名的时候无反映的BUG! Domain4.2(明小子)10.01.16更新版主要更新内容如下: 1.删除所有无关数据 2.优化急速代码 3.改变启动线程 4.增加SQL数据批量导出功能 5.加入几个优化进程模块,非后门.后台运行. 6.锁定主程序栏目宽和高,不在恢复 7.删除“辅助工具”模块中全部代码 8.修正XP SP3 程序下兼容问题 9.重新改写域名查询旁站线程 程序于2010年01月16号调试完毕! 提别提示:第4个功能只能运行在完整版的windows XP 平台系统中,其他平台无法运行,如果出现恢复按钮并不能保存请自行调试与本程序无关.谢谢合作! 宝宝的话:有朋友们的鼓励才会有这个版本的发布,这当是我送给大家2010年里的第一个礼物吧。 Domain4.1(明小子)0901更新版主要更新内容如下: 1.增加新系统兼容模块,全面兼容2000-2008各系统 (部分精简版系统除外) 2.优化网站打开速度,删减部分无用内核信息,全面加快程序启动速度. 3.基于09.05.20号内核提升,改变搜查循环的一个死BUG! 4.删除在0520上增加的一个补针函数,并使用新的函数替换.保证不报错. 5.不在兼容xpsp3,因为没时间去修正这个错误。所以可能部分SP3系统运行不起来本程序 6.增加部分程序扩充空格代码,为下个版本更新做好铺垫 小提示:保留旧的IP反查连接系统,原因没有找到新的和稳定的IP反差服务器!如果有能提供的请与本人联系!谢谢合作 Domain4.1(明小子)0520更新版主要更新内容如下: 1.基于08.10.01号内核提升,修正一次关键错误。 2.替换原程序自带的那个小马,该为最新美化免杀版的小马! 3.添加一个服务器挂钩程序(非插件),使修改后的新内核兼容vista系统。 4.程序数据库默认名为:SetData.mdb 请大家使用3.5版本以上的MDB数据.其他低版本程序可能不兼容! 5.删除后台下载统计代码(以前没发现,本人也是从网站上面下的软件,排除作者自添加行为) 6.加了一个补针,针对sql注入功能中的一个小BUG。 7.删除了很多没有用的代码,最大限度的优化程序启动速度。 8.更新部分在xpsp3下出错的几个小BUG(小问题小解决,这个错误仅针对部分优化过度的XPSP3系统)。 提记:很多朋友说需要修改下程序IP域名查询功能,这里说明下.由于内核找不到关键句柄导致无法更新,下个版本在仔细看看! Domain4.0(明小子)1001更新版主要更新内容如下: 1.更新部分过度优化过的系统不兼容问题。 2.修改内存识别函数,使其降低软件在使用期间所占用的内存大小。 3.基于08.09.15号内核提升,修正因修改软件所出现的几个导致软件崩溃的几个BUG。 4.换了软件自带的那个垃圾皮肤。加入兼容美化皮肤!更美观! 5.兼容前版本数据库支持功能 6.去掉了没有用的PHP入侵选项和几处小BUG...... 转贴是一种美德!分享也是一种快乐,工具仅做辅助作用请勿用在非法用途上! 程序自带本BLOG连接,启动比较慢!不喜勿用!谢谢合作!

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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