[GRASSLIST:10857] Re: Bus Error in g.remove

Huidae Cho grass4u at gmail.com
Thu Mar 9 22:48:08 EST 2006


I've made those changes in mid-February this year.  Could you try running the
following code and let me know what this does?  Don't worry, it's like "find
dir" command.

cc -o list list.c -Wall
./list /

---<list.c>---
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

static int recursive_list(const char *path);

int
main(int argc, char *argv[])
{
	if(argv[1])
		return recursive_list(argv[1]);
	return 1;
}

static int
recursive_list(const char *path)
{
        DIR *dirp;
        struct dirent *dp;
        struct stat sb;
        char path2[1024];

        if(lstat(path, &sb))
                return 1;
        if(!S_ISDIR(sb.st_mode))
	{
		printf("file: %s\n", path);
		return 0;
	}

        if((dirp = opendir(path)) == NULL)
                return 1;
        while((dp = readdir(dirp)) != NULL)
        {
                if(dp->d_name[0] == '.')
                        continue;
                sprintf(path2, "%s/%s", path, dp->d_name);
                recursive_list(path2);
        }
        closedir(dirp);

	printf(" dir: %s/\n", path);
        return 0;
}
--------------

On Thu, Mar 09, 2006 at 08:33:26PM +1300, Hamish wrote:
> Just a thought,
> 
> in the past weeks some code was changed to replace system calls with
> their C equivalents. Maybe this has something to do with it. I can't
> connect to the CVS-web interface currently to check.
> 
> Look for recent changes in:
>   http://freegis.org/cgi-bin/viewcvs.cgi/grass6/general/manage/
> 
> 
> Hamish
> 
> 
> 
> On Wed, 08 Mar 2006 21:04:54 -0600
> Dave Kent <dkent at sasktel.net> wrote:
> 
> > Thanks for the insight.  I went back to the Nov 05 binaries and  
> > Janurary CVS version and things work.  That will be fine for now.  I  
> > guess learning how to build wouldn't  be a bad thing.
> > 
> > Thanks for your help.
> > 
> > Dave
> > 
> > On Mar 8, 2006, at 6:40 PM, William Kyngesburye wrote:
> > 
> > > This is probably the same bug Michael Barton reported yesterday  
> > > (#4152) and I reported last August (#3585).  Specifically, when  
> > > GRASS is built on OS 10.3 Panther (GCC 3.3), and GDAL has Postgres  
> > > support.  It's probably happening for you in Tiger because Lorenzo  
> > > builds with Panther compatibility - either on Panther, or on Tiger  
> > > using the Panther SDK.  A Tiger-only build (GCC 4) is unaffected.
> > >
> > > It's a strange bug - I can build GRASS with GDAL without Postgres  
> > > support, then update GDAL to include Postgres support and it still  
> > > works.  It's only when GDAL has Postgres support *at the time GRASS 
> > > 
> > > is built*.  I've tried various combinations of static and dynamic  
> > > Postgres libraries (and the exact same ones used for Postgres  
> > > support in GRASS) and other options in GDAL and GRASS and GRASS  
> > > with/without its own Postgres support.
> > >
> > > On Mar 8, 2006, at 6:14 PM, Dave Kent wrote:
> > >
> > >> I am using Grass 6.1CVS on Macintosh with the most recent  
> > >> Macintosh binaries.
> > >>
> > >> g.remove gives the following error.
> > >>
> > >> child killed: bus error
> > >> child killed: bus error
> > >>     while executing
> > >> "exec -- $cmd --tcltk"
> > >>     (procedure "execute" line 4)
> > >>     invoked from within
> > >> "execute g.remove "
> > >>     (menu invoke)
> > >>
> > >> This started quite suddenly, possibly consistent with messing with 
> > >
> > >> AWK post I had yesterday.
> > >>
> > >> I get the same error with g.copy, g.rename but not g.list
> > >>
> > >> I have reinstalled the binaries and the application.
> > >>
> > >> There was a not too similar message in the archives which relates  
> > >> to the environmental variable file being corrupted.  I cannot find 
> > >> this file and haven't tried removing it.
> 




More information about the grass-user mailing list