SIGBUS error
Posted in 2000
Topics: General Discussion
_______________________________________________________________ This message and any attachments are intended for the individual or entity named above. If you are not the intended recipient, please do not read, copy, use or disclose this communication to others; also please notify the sender by replying to this message, and then delete it from your system. Thank you. _______________________________________________________________ What is a SIGBUS error? A user is getting this and a core dump whenever she runs a program. If I log in as her and run the program, it runs fine. The only change she made today was increasing the size of arrays in the program. I can't believe that this would be the problem, since I don't have a problem running the program. Can anyone at least tell me what the SIGBUS error means/indicates so I can better troubleshoot the problem? TIA.
SIGBUS is one of several signals that the Kernel will send a process if it tries to violate memory boundaries, or if there are other failures (one I am aware of is if there is a page fault and there is an error bring a page in from secondary storage). Most probably the code change caused the problem. Suggest you compile program with -g option, then use a debugger like dbx to pinpoint the offending line of code. "Colleen M. Morrow" wrote: > _______________________________________________________________ > > This message and any attachments are intended for the individual or entity > named above. If you are not the intended recipient, please do not read, > copy, use or disclose this communication to others; also please notify the > sender by replying to this message, and then delete it from your system. > Thank you. > _______________________________________________________________ > > What is a SIGBUS error? A user is getting this and a core dump whenever > she runs a program. If I log in as her and run the program, it runs fine. > The only change she made today was increasing the size of arrays in the > program. I can't believe that this would be the problem, since I don't > have a problem running the program. Can anyone at least tell me what the > SIGBUS error means/indicates so I can better troubleshoot the problem? > TIA.
There are two main memory violations. SIGSEGV --- segment violation means that you addressed somthing outside of you memory address space SIGBUS -- bus error means that you had an alignment error of some kind. One kind of possibability would be if you tried to do a word machine instruction on a non-word boundry. Another would be trying to return from a subroutine on a non-word boundry if the machine is using a word instruction size, such as HP or Solaris. Since this has occured after enlarging some tables, I'm guessing that you are overrunning you stack and thus corrupting your return address from a sub-routine. If this is the case, then it would be difficult to unwind the stack so a core analysis would be difficult. However, if this is a 4GL program, I think that there is a subscript checking option that you could compile with. "Colleen M. Morrow" wrote: > _______________________________________________________________ > > This message and any attachments are intended for the individual or entity > named above. If you are not the intended recipient, please do not read, > copy, use or disclose this communication to others; also please notify the > sender by replying to this message, and then delete it from your system. > Thank you. > _______________________________________________________________ > > What is a SIGBUS error? A user is getting this and a core dump whenever > she runs a program. If I log in as her and run the program, it runs fine. > The only change she made today was increasing the size of arrays in the > program. I can't believe that this would be the problem, since I don't > have a problem running the program. Can anyone at least tell me what the > SIGBUS error means/indicates so I can better troubleshoot the problem? > TIA.