[GRASS5] d.vect: new segfault

Florian Goessmann florian at wallweg39.de
Fri Dec 17 06:18:17 EST 2004


didn't you get my email yesterday, in which i suggested that?


On 17 Dec 2004, at 12:14, Markus Neteler wrote:

> Florian,
>
> sorry to say, but then we have to revert it (also d.m if needed).
> d.vect is an essential program and must work on all
> platforms.
>
> To make it working for now, I have commented the
> line:
> /*	icon_opt->options     = icon_files();*/
>
> in CVS.
>
> Please comment/revert d.m accordingly if needed.
>
> Maybe Glynn is willing to look at the icon_files() function?
>
> Markus
>
>
> On Wed, Dec 15, 2004 at 05:46:10PM +0100, Florian Goessmann wrote:
>> markus
>>
>> it seems to me, that gcc 2.95 simple won't accept any declaration 
>> after
>> the first control sequence call, thus doesn't work with my patch of
>> d.vect.
>> as debian and osx both work with the changes you applied, i don't have
>> any non-working platform.
>> i'm as lost as you, sorry.
>>
>> regards
>> florian
>>
>> PS: how do you get gdb working? when i want to use it, it complains
>> about not finding debugging flags although i compiled with -g and
>> -ggdb.
>>
>> On 15 Dec 2004, at 09:48, Markus Neteler wrote:
>>
>>> Florian,
>>>
>>> I had to make the following change to d.vect to get
>>> it compiled on RH7/gcc 2.9x. It complained about the
>>> position of the declaration.
>>>
>>> Unfortunately d.vect no longer works on RHEL 3... Sigh.
>>>
>>> d.vect help
>>> Segmentation fault
>>>
>>> GRASS 5.7.cvs:~ > gdb `which d.vect `
>>> GNU gdb Red Hat Linux (6.1post-1.20040607.17rh)
>>> (gdb) r help
>>> Starting program:
>>> /hardmnt/thuille0/ssi/software/cvsgrass57/dist.i686-pc-linux-gnu/bin/
>>> d.vect help
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> 0x00373049 in _int_free () from /lib/tls/libc.so.6
>>> (gdb) bt
>>> #0  0x00373049 in _int_free () from /lib/tls/libc.so.6
>>> #1  0x00373794 in _int_realloc () from /lib/tls/libc.so.6
>>> #2  0x00372136 in realloc () from /lib/tls/libc.so.6
>>> #3  0x00279d0b in G_realloc (buf=0x92e86c8, n=412) at alloc.c:87
>>> #4  0x0804c525 in icon_files () at main.c:83
>>> #5  0x0804c727 in main (argc=2, argv=0xbfff8014) at main.c:167
>>>
>>> nl main.c | head -110 | tail -3
>>>    82
>>>    83          closedir(dir_i);
>>>    84          closedir(dir);
>>>
>>> I'm lost again...
>>>
>>> Markus
>>>
>>> On Wed, Dec 15, 2004 at 09:37:23AM +0100, grass at intevation.de wrote:
>>>> Author: markus
>>>>
>>>> Update of /grassrepository/grass51/display/d.vect
>>>> In directory doto:/tmp/cvs-serv20407
>>>>
>>>> Modified Files:
>>>> 	main.c
>>>> Log Message:
>>>> fixed declaration position for gcc < 3.x
>>>>
>>>> Index: main.c
>>>> ===================================================================
>>>> RCS file: /grassrepository/grass51/display/d.vect/main.c,v
>>>> retrieving revision 1.45
>>>> retrieving revision 1.46
>>>> diff -u -d -r1.45 -r1.46
>>>> --- main.c	14 Dec 2004 20:43:40 -0000	1.45
>>>> +++ main.c	15 Dec 2004 08:37:21 -0000	1.46
>>>> @@ -57,6 +57,10 @@
>>>> 		for (;;) { /*loop over each directory in etc/symbols*/
>>>> 		
>>>> 		  struct dirent *di = readdir(dir_i);
>>>> +                  int ni = 0;
>>>> +                  char *buf = NULL;
>>>> +                  char *buf2 = NULL;
>>>> +                  char *buf3 = NULL;
>>>>
>>>> 		  if (!di)
>>>> 			break;
>>>> @@ -64,10 +68,6 @@
>>>> 		  if (di->d_name[0] == '.')
>>>> 		    continue;
>>>>
>>>> -		  int ni = 0;
>>>> -		  char *buf = NULL;
>>>> -		  char *buf2 = NULL;
>>>> -		  char *buf3 = NULL;
>>>> 		  ni = strlen(di->d_name);
>>>> 		  buf = G_realloc(buf,(strlen(d->d_name) + ni + 1));
>>>> 		  buf2 = G_realloc(buf2,strlen(d->d_name));
>>>
>>> _______________________________________________
>>> grass5 mailing list
>>> grass5 at grass.itc.it
>>> http://grass.itc.it/mailman/listinfo/grass5
>>>
>
> -- 
> Markus Neteler     <neteler itc it>       http://mpa.itc.it
> ITC-irst -  Centro per la Ricerca Scientifica e Tecnologica
> MPBA - Predictive Models for Biol. & Environ. Data Analysis
> Via Sommarive, 18        -       38050 Povo (Trento), Italy
>




More information about the grass-dev mailing list