V240 solairs 9操作系统 在运行时,有时会出现sigbus 但每次地方都不尽相同,利用core或bt也只能跟踪到堆栈函数 但这些函数参数都为局部参数,不可能会字节不对齐啊 请问有什么好方法,跟踪sigbus 可以方便的定位是哪个参数或调用造成了字节不对齐 谢谢
by luckmonkey - Solaris - 2006-12-28 10:25:06 阅读(1129) 回复(0)
Q: SIGSEGV我能理解,但有时碰上sigbus,这该如何理解。 A: nkwht@smth nkwht用Google获取这样一些知识。有多种可能导致sigbus信号: 1) 硬件故障,不用说,程序员最常碰上的肯定不是这种情形。 2) Linux平台上执行malloc(),如果没有足够的RAM,Linux不是让malloc()失败返回, 而是向当前进程分发sigbus信号。 注: 对该点执怀疑态度,有机会可自行测试确认当前系统反应。 3) 某些架构上访问数据时有对齐的要求,比如只能从4字...
对于应用程序来说,什么样的代码会产生这3种信号? 我自己常碰到的是 char *p = NULL; *p = 1; 会产生SIGSEGV 对同一个指针free() 2次可能会产生SIGABRT address alignment可能会导致sigbus 哪位能总结一下,或者哪儿可以查到详细点的资料。
总是出现这个错误。奇怪的是,要是先用print 一下htons()函数的话,就能够往下执行。什么原因呢? [quote][Switching to Thread 8192 (LWP 32541)] Breakpoint 1, SYSCMNinitsync (seq_no=0, wait=0 '\0', time_out=0) at syscmn_initsync.c:76 76 if(ret >= 0){ (gdb) mkdir: ディレクトリ `/tmp/bws/' を作成できません: ファイルが存在します n 77 ret = -1; (gdb) 80 memset(&waittime, ...
solaris 8, 程序只是处理文本文件,有时候申请内存[calloc())]时会收到sigbus信号,甚至在fgets时也会。程序几乎一天dump一次。 现在发现在一处理完某个文件后再处理下一个文件()在fgets()时就收到sigbus信号,dump了! 为什么???高手们帮帮我吧!
在HP上用C写的程序运行时出现sigbus,程序时一段加密算法,在win32/linux/solaris/aix上都运行OK,但是在HP11(IA64)上使用gcc4编译过去之后运行出现sigbus错误而coredump,好像是对齐上不对,但是应该如何处理呢?希望大家指点!
HP上用C写的程序运行时出现sigbus,程序时一段加密算法,在 win32/linux/solaris/aix上都运行OK,但是在HP11(IA64)上使用gcc4编译过去之后运行出现sigbus错误而 coredump,好像是对齐上不对,但是应该如何处理呢?