linux gdb停止运行的程序,linuxGDB里运行正常, 但非GDB运行就异常退出, 而且还不生成core文件....

程序运行环境为 red hat  A4 linux,     写了一个网络服务程序,  奇怪的是服务在gdb里面跑就运行正常,   但是在非GDB环境下跑, 就异常退出, 而且还不生成core文件.

我查这个问题已经一个多星期, 郁闷死了, 现在还不知该怎么下手.

|

异常退出就一定会生成core吗? 难道没有不生成core的异常退出??

如果不是正常退出的那就是有信号引起的程序退出.有些信号确实能引起程序退出但不生成core;

SIGHUP 终止进程 终端线路挂断

SIGINT 终止进程 中断进程

SIGQUIT 建立CORE文件终止进程,并且生成core文件

SIGILL 建立CORE文件 非法指令

SIGTRAP 建立CORE文件 跟踪自陷

SIGBUS 建立CORE文件 总线错误

SIGSEGV 建立CORE文件 段非法错误

SIGFPE 建立CORE文件 浮点异常

SIGIOT 建立CORE文件 执行I/O自陷

SIGKILL 终止进程 杀死进程

SIGPIPE 终止进程 向一个没有读进程的管道写数据

SIGALARM 终止进程 计时器到时

SIGTERM 终止进程 软件终止信号

SIGSTOP 停止进程 非终端来的停止信号

SIGTSTP 停止进程 终端来的停止信号

SIGCONT 忽略信号 继续执行一个停止的进程

SIGURG 忽略信号 I/O紧急信号

SIGIO 忽略信号 描述符上可以进行I/O

SIGCHLD 忽略信号 当子进程停止或退出时通知父进程

SIGTTOU 停止进程 后台进程写终端

SIGTTIN 停止进程 后台进程读终端

SIGXGPU 终止进程 CPU时限超时

SIGXFSZ 终止进程 文件长度过长

SIGWINCH 忽略信号 窗口大小发生变化

SIGPROF 终止进程 统计分布图用计时器到时

SIGUSR1 终止进程 用户定义信号1

SIGUSR2 终止进程 用户定义信号2

SIGVTALRM 终止进程 虚拟计时器到

把可能的信号都设置上句柄,看是那种情况.

|

为了生成coredump,设定一下环境

ulimit -c unlimited

参考:

http://justlinux.com/forum/archive/index.php/t-136325.html

|

to cceczjxy()

1. 时间同步和异常退出有什么关系?

2. 内存溢出应该有core文件才对, 但在gdb环境下是正常的.

------------------------------------

1,说错了,不是时间同步,是线程间的同步,你的程序是多线程的不?如果不是就没有这样的错误了.

2,生不生成core,要看你的设置了,你设置的允许生成core文件不?

不管怎样,应该先定位到错误的位置再说.

3,网络服务程序?你检查一下各种信号,看是那中情况退出的.

我以前遇到过一种情况:

服务端从客户端读取请求数据后,一阻塞方式处理数据(时间不长),处理完成后继续从客户端读取数据.

测试时发现,如果在处理数据时客户端主动断开连接,那么在处理完数据后读取数据的时候,就会产生PIPE

信号.但是,如果数据处理的时间短的话,处理时断开连接则不会出现那样的情况.

|

不是吧, SIGSEGV就是Segment fault, 这个是产生core的, 还有SIGFPE浮点错误, 这些都是产生core的.

--------------------------------------------

SIGSEGV 建立CORE文件 段非法错误

SIGFPE 建立CORE文件 浮点异常

没说它不建立core文件呀

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值