[GRASS-dev] g.copy rast=

Martin Rutzinger Martin.Rutzinger at uibk.ac.at
Mon Feb 19 10:03:51 EST 2007


hi,

cause i'm not familiar with grass c programming, i'm not sure what information
you need for error detection. so i followed the grass debugging manual on the
WIKI.

thanks,
martin


GRASS 6.3.cvs (utm):~ > gdb `which g.copy`

(gdb) run rast=rott_one,test1
Starting program: /usr/local/grass-6.3.cvs/bin/g.copy rast=rott_one,test1
[Thread debugging using libthread_db enabled]
[New Thread -1208621360 (LWP 13741)]
Copy <rott_one at hohenems_site> to current mapset as <test1>

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208621360 (LWP 13741)]
do_copy (n=0, old=0x8adc838 "rott_one", mapset=0x8adc870 "hohenems_site",
new=0x8adc848 "test1") at do_copy.c:40
40              for (i = 0; i < list[n].nelem; i++)
(gdb) bt full
#0  do_copy (n=0, old=0x8adc838 "rott_one", mapset=0x8adc870 "hohenems_site",
new=0x8adc848 "test1") at do_copy.c:40
        i = 0
        ret = <value optimized out>
        path =
"/data/grassdb/utm/hohenems_site/cell/rott_one\000-&#65533;M\\&#65533;dc\000\000&#65533;&#1079;\000\000\000R&#65533;\023Ndc\000\000&#65533;&#1079;\034&#65533;8&#65533;\024&#65533;&#65533;\031N\224&#1663;\224&#1663;,&#65533;=l\031N\224&#1663;\000\000\000\000\000\000\000\000}\004\bx&#1663;\235&#65533;027N$&#1663;\000\000\000\000\224&#1663;\001\000\000\000&#65533;wM&#65533;wM\004\033&#65533;234&#65533;&#65533;&#1663;-&#65533;M,&#65533;$wM\027\000\000\000\034&#65533;000\n&#288;"...
        path2 =
"/data/grassdb/utm/hohenems_site/cell/test1\000\000\000\000\005\000\000\000\b&#65533;&#65533;\003\000\000\000H&#65533;&#65533;&N&#65533;&NH&#65533;D&#65533;X&#65533;\002",
'\0' <repeats 11 times>,
"\200\b\006\000\000\000X&#65533;&#65533;031\033N\b8//\000&#65533;
&#65533;&#65533;\230\b\210)&#1655;\000\000\000\000\000\000\000\0000\b\000\000\000\000&#65533;&N\b0\b\025N&#65533;&#1663;rq\032N\b\210&#65533;&#65533;\b\000\000\000"...
        result = 0
#1  0x08049453 in main (argc=2, argv=0xbfd9fbd4) at copy.c:80
        n = <value optimized out>
        mapset = 0x8adc870 "hohenems_site"
        module = (struct GModule *) 0xcb3710
        parm = (struct Option **) 0x8adbb68
        p = <value optimized out>
        to = 0x8adc848 "test1"
        buf1 =
"&#65533;&#1663;\000\000\000\000\000\000\000\000\001\000\000\000F\b\000\000&#65533;033&#65533;&#65533;\212\004\bd\b\024N\203\004\b\001\000\000\000&#65533;wM\200wM<&#1663;X&#1663;P&#65533;M\203\004\b<&#1663;$wM\027\000\000\000&#65533;033&#65533;001\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\235A&\000H&#1663;\004\023NR&#65533;&#65533;\000&#65533;wM&#65533;&#65533;&#65533;000\200&#1663;&#65533;wMo\212\004\b\001\000\000\000\001\000\000\000\001\000\000\000.N=&#65533;000\000\000\000\000\200&#65533;000\220<9\000\025NX$\001\b&#65533;\001&#65533;&N"...
        location_path = 0x8adc858 "/data/grassdb/utm"
        result = 0
(gdb) l
35                  G_warning ("Cannot copy <%s> to current mapset as <%s>",
36                             G_fully_qualified_name(old, mapset), new );
37                  result = 1;
38              }
39          } else {
40              for (i = 0; i < list[n].nelem; i++)
41              {
42                  G__make_mapset_element (list[n].element[i]);
43                  G__file_name (path, list[n].element[i], old, mapset);
44                  if (access (path, 0) != 0)
(gdb) frame 2
#0  0x00000000 in ?? ()
(gdb) l
45                  {
46                      G_remove (list[n].element[i], new);
47                      if (G_verbose() == G_verbose_max())
48                          G_message (_("%s: missing"), list[n].desc[i]);
49
50                      continue;
51                  }
52                  G__file_name (path2, list[n].element[i], new, G_mapset());
53                  if ( recursive_copy(path, path2) == 1 )
54                  {




Zitat von Martin Rutzinger <Martin.Rutzinger at uibk.ac.at>:

> GRASS 6.3.cvs (utm):~ > gdb `which g.copy`
>
> (gdb) run "rast=rott_one,test1"
> Starting program: /usr/local/grass-6.3.cvs/bin/g.copy "rast=rott_one,test1"
> [Thread debugging using libthread_db enabled]
> [New Thread -1208944944 (LWP 13355)]
> Copy <rott_one at hohenems_site> to current mapset as <test1>
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1208944944 (LWP 13355)]
> do_copy (n=0, old=0xa02b838 "rott_one", mapset=0xa02b870 "hohenems_site",
> new=0xa02b848 "test1") at do_copy.c:40
> 40              for (i = 0; i < list[n].nelem; i++)
> (gdb)
>
>
> Zitat von Martin Landa <landa.martin at gmail.com>:
>
> > Hi,
> >
> > it is strange, on my machine g.copy works. What does gdb say?
> >
> > Martin
> >
> > 2007/2/19, Martin Rutzinger <Martin.Rutzinger at uibk.ac.at>:
> > > hi list,
> > >
> > > with the recent cvs version of grass63 g.copy for raster maps doesn't
> work
> > any
> > > more. i just get a meaningless 'memory access error'
> > (speicherzugriffsfehler).
> > > runinng configure, make, make install gives no error messages.
> > >
> > > g.gisenv set="DEBUG=5"
> > >
> > > g.copy rast=raster1,raster2
> > > D3/5: Copy rast
> > > Copy <raster1 at hohenems_site> to current mapset as <raster2>
> > > Speicherzugriffsfehler
> > >
> > > r.info raster2
> > > D2/5: G__home home = /home/rusch
> > > WARNUNG: Kann Header-Datei [raster2 in hohenems_site] nicht öffnen
> > > WARNUNG: Kategorie Unterstützung für [raster2] im Mapset [hohenems_site]
> > >          missing
> > > WARNUNG: Kann die History-Informationen der Karte [raster2] in Mapset
> > >          [hohenems_site] nicht finden.
> > > WARNUNG: Kann range Datei für [raster2 in hohenems_site] nicht lesen.
> > > FEHLER: Kann die Wertespanne nicht lesen.
> > >
> > >
> > >
> > > the problem appears on FC4,FC5 and FC6 aswell with following
> configuration:
> > >
> > > FLAGS='-g -Wall' ./configure  --with-x --enable-shared --with-proj
> > > --with-gdal=/usr/local/bin/gdal-config
> > --with-tcltk-includes=/usr/local/include
> > > --with-postgres-includes=/usr/local/pgsql/include
> > > --with-postgres-libs=/usr/local/pgsql/lib
> > > --with-freetype-includes=/usr/include/freetype2
> > --with-freetype-libs=/usr/lib
> > > --enable-largefile --with-odbc --with-motif  --with-freetype=yes
> --with-cxx
> > > --with-glw --with-nls --with-blas --with-lapack
> > > --with-lapack-libs=/usr/local/lib --with-ffmpeg
> > > --with-ffmpeg-includes=/usr/local/include/ffmpeg --with-sqlite
> > > --with-proj-share=/usr/local/share/proj/ --enable-64bit --with-python
> > >
> > > i don't know which libs/pkg are used by g.copy; but i tried different
> > versions
> > > of e.g. gdal ( gdal-1.3.2/gdal-1.4.0/gdal-svn; tcl/tk8.5a5/tcl/tk8.4.14)
> > but it
> > > seems to me that it's not dependent on a certain version of a package.
> > >
> > > thanks alot!
> > > martin
> > >
> > >
> > > _______________________________________________
> > > grass-dev mailing list
> > > grass-dev at grass.itc.it
> > > http://grass.itc.it/mailman/listinfo/grass-dev
> > >
> >
> >
> > --
> > Martin Landa <landa.martin at gmail.com> * http://gama.fsv.cvut.cz/~landa *
> >
>




More information about the grass-dev mailing list