免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2446 | 回复: 5
打印 上一主题 下一主题

请问,oracle11 c程序中,自动对信号是如何处理的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-08 19:03 |只看该作者 |倒序浏览
自己编写的c程序,通过proc c进行数据库操作,当在oracle 10g环境中,连接数据库后,当程序运行异常时会产生段违例文件,比如 abort(),会产生段违例文件。 但程序在oracle11中, abort()产生的信号会被oracle的库函数捕捉,打印出警告,然后不知通过什么机制将程序kill,没有产生段违例文件。

   请问,有什么办法屏蔽oracle库对特定信号的处理? 因为个人需要用段违例文件来定位程序异常发生的初始位置,因为没有core文件,所以无法gdb调试

论坛徽章:
0
2 [报告]
发表于 2010-12-08 19:06 |只看该作者
比如如下代码

  1. main()
  2. {
  3.     my_connect_to_oracle();
  4.    

  5.     abort();
  6. }
复制代码
在oracle 10环境中会产生core文件,oracle11环境中没有。 如果去掉 my_connect_to_oracle(),在实验环境中都可以产生core文件

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2010-12-08 22:33 |只看该作者
没有做过proc编程。帮顶。

论坛徽章:
0
4 [报告]
发表于 2010-12-09 17:59 |只看该作者
11的没玩过,这个特性倒是有点奇怪

论坛徽章:
0
5 [报告]
发表于 2010-12-09 18:00 |只看该作者
如果abort()产生segment core dump的话,被oracle的lib捕获,会有什么信息?

论坛徽章:
0
6 [报告]
发表于 2011-01-28 22:01 |只看该作者
如果abort()产生segment core dump的话,被oracle的lib捕获,会有什么信息?
doni 发表于 2010-12-09 18:00



    之前程序是daemon的,只是发现这个现象,后来在前台执行,发现是oracle报出来信号操作了(具体的忘记了)

   这个机制到现在也没有研究清楚,不过自己的段违例问题分析出来了,所以还没专门抽出时间再分析它。 等后面有时间分析后我再把分析结论发一下,谢谢大家!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP