Sponsored Content
Full Discussion: Bus Error
Top Forums UNIX for Dummies Questions & Answers Bus Error Post 10252 by Perderabo on Saturday 10th of November 2001 04:57:39 PM
Old 11-10-2001
Quote:
Originally posted by tonyt
I only know that if one trys to access a memory which in a readonly segment, the system will bumpup a Bus Error signal.
By "access" I guess you mean trying to store something there. Not to belabor the obvious, but it is legal to read a read-only segment.

There are two signals that can be delivered to a process that attempts something with an illegal memory address:

SIGBUS (ksh will say Bus error(coredump))
SIGSEGV (ksh will say Memory fault(coredump))

I've been looking through my library and I can't find any documentation that states which signal must be delivered under a specific condition. It may be that some versions of unix only use one or the other for everything. The kernel really depends on the cpu to catch these and it may be that some cpu's simply have a single trap to handle all bad addresses.

Still to me these errors have slightly different meanings, although I must admit that this is based mostly on C programming in an HP-UX environment.

SIGBUS means that you have asked to cpu to do something that is impossible. More to the point, the cpu can catch this error immediately by looking at the virtual address. There is no need to even attempt to convert the virtual address to a physical address. This is why cpu's bother to have a two-tiered check on an address. Converting a virtual address to a physical address can be a somewhat expensive operation.

SIGSEGV means that you have asked the cpu to do something that is illegal. If the kernel wanted to, it could fiddle with things to render the attempted operation legal. This error is caught after the attempted conversion of the virtual address to a physical address.

I would tend to expect that the situation tonyt is describing would result in a SIGSEGV rather than a SIGBUS....except that if you have a pointer that is both misaligned and in the wrong segment, you won't get both signals, you only get a SIGBUS. If an int is 4 bytes on your system and you try to store an int at random addresses in a read-only segment, then yes 75% of the time you will get a SIGBUS, while 25% of the time your pointer is aligned and you get the SIGSEGV.

Still tonyt may have a system that works differently than mine. And if a system can only deliver a single signal for address problems, SIGBUS would be my choice.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

bus error on solaris

Hi there I am running soalris 9 on a sun fire 480r and all of a sudden (today) whenever the users run the command `top` we get the following message `bus error` does anybody have any information on what this is all about and whether there is a routine i can perform to gather more... (3 Replies)
Discussion started by: hcclnoodles
3 Replies

2. UNIX for Dummies Questions & Answers

Bus error(coredump

aix 5.3 ML1 system was functioing well, when suddenly telnet session hung and then I got the following message "Bus error(coredump)" would appreciate if anyone would assist as to what to do next. (3 Replies)
Discussion started by: Student37
3 Replies

3. UNIX for Advanced & Expert Users

Bus Error(coredump)

Hi, I am using HP-UX. While i try to run the Sqlplus command using the shel script in encounter the following error: <shell script name>: some number Bus Error(coredump) What may be the reason behind this. I read few previous threads in this forum where i found some similar case. There it was... (2 Replies)
Discussion started by: Jayesh
2 Replies

4. Programming

BUS error

Hi! I've got a program which runs fine under Linux, but I have compiled it to run under SunOS 5.8 in a Sparc computer, and now it sometimes fails with "bus error". Ussing gdb I surfed to the error line, which is *pointer = some_vector; where some_vector is a 16 byte struct (4 integers)... (1 Reply)
Discussion started by: shesatmine
1 Replies

5. UNIX for Dummies Questions & Answers

bus error (coredump)

Hi all, I am getting bus error problem in SunOS. Can you please help me out in this regard. Actually, my entire code till the last line has been executed. But after tht i am getting a bus error. Please help me. Thanks in advance. Charu. (4 Replies)
Discussion started by: charu
4 Replies

6. HP-UX

Need help on Bus error(coredump)

Hi all, I am quite weak in C but I need to get some work done. Hope someone can help me out. I keep getting this error when i try to run my C application in my HP-UX 10.20 machine. Some code snippet: Month(DBTime) =====This is a function which will return variable "CutOffTime" to be use... (5 Replies)
Discussion started by: Vision©
5 Replies

7. HP-UX

Bus Error

I am getting bus error when i include "#!/bin/ksh". If i remove interpreter then script is working. Can anyone explain this and how can i avoid this error? Operating System is HP-UX B.11.23 U 9000/800 1091834454 (2 Replies)
Discussion started by: anbu23
2 Replies

8. Programming

Bus error

Hi everyone, I have a GUI project and when I run it and left in idle state for a long time(there is nothing done, just opened GUI, no more actions),I get bus error after trying to do anything with it. I've tried to build it in debug mode and use gdb, but I don't get any error in debug mode.It... (3 Replies)
Discussion started by: sisi
3 Replies

9. Programming

Bus error in tree insertion

Hi, I am new to C++ and unix. I am trying to write a programm for inserting elements into a binary tree. To get the code flow I used few Couts and m facing buss error while insertion. Below is the code snippet. explainations needed. thanks :) #include <iostream.h> struct mytree { int... (1 Reply)
Discussion started by: vineetjoshi
1 Replies

10. Programming

Bus Error: 10...Help please!

Hi all, I am writing a phonebook program to store names and number using a list. Here is the code for the function which allows the user to enter the name and number (where the error occurs). //THIS FUNCTION ADDS A NEW ENTRY TO THE phonebook_list void insert(void){ //variables int... (5 Replies)
Discussion started by: kdejan
5 Replies
metaimport(1M)															    metaimport(1M)

NAME
metaimport - imports disk sets into existing Solaris Volume Manager configurations SYNOPSIS
metaimport -s setname [-n] [-v] [-f] [disks...] metaimport -r [disks...] metaimport -V metaimport -? The metaimport command allows the importing of disk sets, including replicated disk sets, into an existing Solaris Volume Manager configu- ration. Replicated disk sets are disk sets created using remote replication software. The default Solaris Volume Manager configuration specifies a maximum number of disk sets that can be configured. The metaimport command fails if importing the disk set would result in exceeding the number of disk sets configured on the system. To increase the number of disk sets allowed on a system, see the . Use metaset(1M) or metastat(1M) to view the configuration of the imported set. You must run metaimport as root. metaimport requires a functional Solaris Volume Manager configuration before it runs. The following options are supported: -f Force the import, even if a quorum of replicas from the imported disk set is not available. This option could result in corrupt configurations and should only be used when metaimport fails with the "Insufficient quorum detected; exiting" error. If only a partial disk set is available, this option might be necessary to successfully import. Some or all data could be corrupted or unavailable when importing a partial set or a set lacking a replica quorum. -n Does not actually perform the operation, but shows the output or errors that would have resulted from the opera- tion, had it been run. -r Report on the non-configured disk sets found on the system. If no disk device or LUN is specified, metaimport reports on all non-configured disk sets attached to the system. When the name of one disk is specified, metaimport reports on the disk set (or virtual LUN) containing the specified disk. If two or more disks are specified, metaim- port reports on the set (or sets, if they belong to different disk sets) containing the specified disks. If two or more disks are specified, metaimport reports on the set (or sets, if they belong to different disk sets) containing the specified disks. -s setname Specify the disk set name to use when importing. The imported disk set will be called setname, without regard to the name it may have had on a different system. -v Verbose. Provides detailed information about the metadb replica location and status. -V Version information. -? Display a help message. Example 1: Importing a Disk Set The following example creates a disk set called blue and identifies c1t5d0 as a disk containing a state database replica from the disk set being imported. # metaimport -s blue c1t5d0 Example 2: Reporting Disk Sets to Import The following example scans all disks and LUNs attached to the system and configured as part of the system. It scans for disks that could be part of a disk set to be imported. Components that are already part of the Solaris Volume Manager configuration are ignored. This use of metaimport provides suggested forms of the metaimport command to use to actually import the disk sets that have been found. You can specify a component on the command line to reduce the scope of the scan and generate results more quickly. # metaimport -r 0 Successful completion. >0 An error occurred. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWmdu | +-----------------------------+-----------------------------+ |Interface Stability |Stable | +-----------------------------+-----------------------------+ mdmonitord(1M), metaclear(1M), metadb(1M), metadetach(1M), metahs(1M), metainit(1M), metaoffline(1M), metaonline(1M), metaparam(1M), metarecover(1M), metareplace(1M), metaroot(1M), metaset(1M), metasync(1M), metattach(1M), md.tab(4), md.cf(4), mddb.cf(4), attributes(5) 16 May 2005 metaimport(1M)
All times are GMT -4. The time now is 07:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy