unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
@ 2010-04-06 13:44 Hubert Gosselmeyer
  2016-08-14 21:38 ` Alex
  2016-08-20  3:32 ` bug#5847: [Hubert Gosselmeyer] " Alex
  0 siblings, 2 replies; 9+ messages in thread
From: Hubert Gosselmeyer @ 2010-04-06 13:44 UTC (permalink / raw)
  To: 5847

[-- Attachment #1: Type: text/plain, Size: 60762 bytes --]

Hi,

the GNU Emacs TAGS tool 'etags' seems to have problems if source code is not
probably indented and new scopes are created within procedures. I found this
out by using etags on generated code where a lot of structures where created
on the heap, initialized and assigned to an array of pointers.

The code was of the following kind:

var_t *varray[0xffffff];

int init() {

{
  var_t *v = malloc(...);
  v->x = ...;
  // ...
  varray[i] = v;
  free v;
}

{
  var_t *v = malloc(...);
  v->x = ...;
  // ...
  varray[i] = v;
  free v;
}
...
}

The problems with this:
  (1) All data within the inner scopes were written to the TAGS file
  (2) After writing a lot of this data, etags triggered a segmentation fault.

In contrast to this, proper indented code does not have these effects.

For demonstration I will attach the following files:

test_segf.c  - source file triggerin a segmentation fault

test_nosegf.c   - same as test_segf.c but without braces at the line start -
                  not triggering a segmentation fault.


Version Information
--------------------
In GNU Emacs 23.1.2 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2009-08-03 on chicken
Windowing system distributor `The X.Org Foundation', version 11.0.10400090


GDB Output:
-----------

user@gosselmeyer:~/testcase> gdb --args etags test_segf.c
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-suse-linux"...
(gdb) r
Starting program: /home/user/emacs23/bin/etags test_segf.c

Program received signal SIGSEGV, Segmentation fault.
0xb7e18898 in _IO_file_xsputn () from /lib/libc.so.6
(gdb) bt full
#0  0xb7e18898 in _IO_file_xsputn () from /lib/libc.so.6
No symbol table info available.
#1  0xb7def021 in vfprintf () from /lib/libc.so.6
No symbol table info available.
#2  0xb7df8c1f in fprintf () from /lib/libc.so.6
No symbol table info available.
#3  0x08050c3a in put_entries (np=0x8ab2060)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2259
	fdp = (fdesc *) 0x8060098
#4  0x08050c7e in put_entries (np=0x8ab2010)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#5  0x08050c7e in put_entries (np=0x8ab1fc0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#6  0x08050c7e in put_entries (np=0x8ab1f68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#7  0x08050c7e in put_entries (np=0x8ab1f18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#8  0x08050c7e in put_entries (np=0x8ab1ec8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#9  0x08050c7e in put_entries (np=0x8ab1e70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#10 0x08050c7e in put_entries (np=0x8ab1e20)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#11 0x08050c7e in put_entries (np=0x8ab1dd0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#12 0x08050c7e in put_entries (np=0x8ab1d78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#13 0x08050c7e in put_entries (np=0x8ab1d28)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#14 0x08050c7e in put_entries (np=0x8ab1cd8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#15 0x08050c7e in put_entries (np=0x8ab1c80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#16 0x08050c7e in put_entries (np=0x8ab1c30)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#17 0x08050c7e in put_entries (np=0x8ab1be0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#18 0x08050c7e in put_entries (np=0x8ab1b88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#19 0x08050c7e in put_entries (np=0x8ab1b38)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#20 0x08050c7e in put_entries (np=0x8ab1ae8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#21 0x08050c7e in put_entries (np=0x8ab1a90)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#22 0x08050c7e in put_entries (np=0x8ab1a40)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#23 0x08050c7e in put_entries (np=0x8ab19f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#24 0x08050c7e in put_entries (np=0x8ab1998)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#25 0x08050c7e in put_entries (np=0x8ab1948)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#26 0x08050c7e in put_entries (np=0x8ab18f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#27 0x08050c7e in put_entries (np=0x8ab18a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#28 0x08050c7e in put_entries (np=0x8ab1850)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#29 0x08050c7e in put_entries (np=0x8ab1800)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#30 0x08050c7e in put_entries (np=0x8ab17a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#31 0x08050c7e in put_entries (np=0x8ab1758)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#32 0x08050c7e in put_entries (np=0x8ab1708)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#33 0x08050c7e in put_entries (np=0x8ab16b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#34 0x08050c7e in put_entries (np=0x8ab1660)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#35 0x08050c7e in put_entries (np=0x8ab1610)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#36 0x08050c7e in put_entries (np=0x8ab15b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#37 0x08050c7e in put_entries (np=0x8ab1568)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#38 0x08050c7e in put_entries (np=0x8ab1518)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#39 0x08050c7e in put_entries (np=0x8ab14c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#40 0x08050c7e in put_entries (np=0x8ab1470)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#41 0x08050c7e in put_entries (np=0x8ab1420)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#42 0x08050c7e in put_entries (np=0x8ab13c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#43 0x08050c7e in put_entries (np=0x8ab1378)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#44 0x08050c7e in put_entries (np=0x8ab1328)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#45 0x08050c7e in put_entries (np=0x8ab12d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#46 0x08050c7e in put_entries (np=0x8ab1280)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#47 0x08050c7e in put_entries (np=0x8ab1230)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#48 0x08050c7e in put_entries (np=0x8ab11d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#49 0x08050c7e in put_entries (np=0x8ab1188)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#50 0x08050c7e in put_entries (np=0x8ab1138)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#51 0x08050c7e in put_entries (np=0x8ab10e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#52 0x08050c7e in put_entries (np=0x8ab1090)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#53 0x08050c7e in put_entries (np=0x8ab1040)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#54 0x08050c7e in put_entries (np=0x8ab0fe8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#55 0x08050c7e in put_entries (np=0x8ab0f98)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#56 0x08050c7e in put_entries (np=0x8ab0f48)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#57 0x08050c7e in put_entries (np=0x8ab0ef0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#58 0x08050c7e in put_entries (np=0x8ab0ea0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#59 0x08050c7e in put_entries (np=0x8ab0e50)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#60 0x08050c7e in put_entries (np=0x8ab0df8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#61 0x08050c7e in put_entries (np=0x8ab0da8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#62 0x08050c7e in put_entries (np=0x8ab0d58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#63 0x08050c7e in put_entries (np=0x8ab0d00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#64 0x08050c7e in put_entries (np=0x8ab0cb0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#65 0x08050c7e in put_entries (np=0x8ab0c60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#66 0x08050c7e in put_entries (np=0x8ab0c08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#67 0x08050c7e in put_entries (np=0x8ab0bb8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#68 0x08050c7e in put_entries (np=0x8ab0b68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69 0x08050c7e in put_entries (np=0x8ab0b10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#70 0x08050c7e in put_entries (np=0x8ab0ac0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#71 0x08050c7e in put_entries (np=0x8ab0a70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#72 0x08050c7e in put_entries (np=0x8ab0a18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#73 0x08050c7e in put_entries (np=0x8ab09c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#74 0x08050c7e in put_entries (np=0x8ab0978)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#75 0x08050c7e in put_entries (np=0x8ab0920)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#76 0x08050c7e in put_entries (np=0x8ab08d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#77 0x08050c7e in put_entries (np=0x8ab0880)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#78 0x08050c7e in put_entries (np=0x8ab0828)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#79 0x08050c7e in put_entries (np=0x8ab07d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#80 0x08050c7e in put_entries (np=0x8ab0788)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#81 0x08050c7e in put_entries (np=0x8ab0730)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#82 0x08050c7e in put_entries (np=0x8ab06e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#83 0x08050c7e in put_entries (np=0x8ab0690)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#84 0x08050c7e in put_entries (np=0x8ab0638)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#85 0x08050c7e in put_entries (np=0x8ab05e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#86 0x08050c7e in put_entries (np=0x8ab0598)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#87 0x08050c7e in put_entries (np=0x8ab0540)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#88 0x08050c7e in put_entries (np=0x8ab04f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#89 0x08050c7e in put_entries (np=0x8ab04a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#90 0x08050c7e in put_entries (np=0x8ab0448)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#91 0x08050c7e in put_entries (np=0x8ab03f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#92 0x08050c7e in put_entries (np=0x8ab03a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#93 0x08050c7e in put_entries (np=0x8ab0350)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#94 0x08050c7e in put_entries (np=0x8ab0300)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#95 0x08050c7e in put_entries (np=0x8ab02b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#96 0x08050c7e in put_entries (np=0x8ab0258)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#97 0x08050c7e in put_entries (np=0x8ab0208)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#98 0x08050c7e in put_entries (np=0x8ab01b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#99 0x08050c7e in put_entries (np=0x8ab0160)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#100 0x08050c7e in put_entries (np=0x8ab0110)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#101 0x08050c7e in put_entries (np=0x8ab00c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#102 0x08050c7e in put_entries (np=0x8ab0068)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#103 0x08050c7e in put_entries (np=0x8ab0018)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#104 0x08050c7e in put_entries (np=0x8aaffc8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#105 0x08050c7e in put_entries (np=0x8aaff70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#106 0x08050c7e in put_entries (np=0x8aaff20)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#107 0x08050c7e in put_entries (np=0x8aafed0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#108 0x08050c7e in put_entries (np=0x8aafe78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#109 0x08050c7e in put_entries (np=0x8aafe28)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#110 0x08050c7e in put_entries (np=0x8aafdd8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#111 0x08050c7e in put_entries (np=0x8aafd80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#112 0x08050c7e in put_entries (np=0x8aafd30)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#113 0x08050c7e in put_entries (np=0x8aafce0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#114 0x08050c7e in put_entries (np=0x8aafc88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#115 0x08050c7e in put_entries (np=0x8aafc38)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#116 0x08050c7e in put_entries (np=0x8aafbe8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#117 0x08050c7e in put_entries (np=0x8aafb90)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#118 0x08050c7e in put_entries (np=0x8aafb40)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#119 0x08050c7e in put_entries (np=0x8aafaf0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#120 0x08050c7e in put_entries (np=0x8aafa98)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#121 0x08050c7e in put_entries (np=0x8aafa48)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#122 0x08050c7e in put_entries (np=0x8aaf9f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#123 0x08050c7e in put_entries (np=0x8aaf9a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#124 0x08050c7e in put_entries (np=0x8aaf950)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#125 0x08050c7e in put_entries (np=0x8aaf900)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#126 0x08050c7e in put_entries (np=0x8aaf8a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#127 0x08050c7e in put_entries (np=0x8aaf858)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#128 0x08050c7e in put_entries (np=0x8aaf808)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#129 0x08050c7e in put_entries (np=0x8aaf7b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#130 0x08050c7e in put_entries (np=0x8aaf760)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#131 0x08050c7e in put_entries (np=0x8aaf710)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#132 0x08050c7e in put_entries (np=0x8aaf6b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#133 0x08050c7e in put_entries (np=0x8aaf668)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#134 0x08050c7e in put_entries (np=0x8aaf618)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#135 0x08050c7e in put_entries (np=0x8aaf5c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#136 0x08050c7e in put_entries (np=0x8aaf570)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#137 0x08050c7e in put_entries (np=0x8aaf520)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#138 0x08050c7e in put_entries (np=0x8aaf4c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#139 0x08050c7e in put_entries (np=0x8aaf478)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#140 0x08050c7e in put_entries (np=0x8aaf428)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#141 0x08050c7e in put_entries (np=0x8aaf3d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#142 0x08050c7e in put_entries (np=0x8aaf380)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#143 0x08050c7e in put_entries (np=0x8aaf330)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#144 0x08050c7e in put_entries (np=0x8aaf2d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#145 0x08050c7e in put_entries (np=0x8aaf288)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#146 0x08050c7e in put_entries (np=0x8aaf238)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#147 0x08050c7e in put_entries (np=0x8aaf1e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#148 0x08050c7e in put_entries (np=0x8aaf190)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#149 0x08050c7e in put_entries (np=0x8aaf140)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#150 0x08050c7e in put_entries (np=0x8aaf0e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#151 0x08050c7e in put_entries (np=0x8aaf098)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#152 0x08050c7e in put_entries (np=0x8aaf048)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#153 0x08050c7e in put_entries (np=0x8aaeff0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#154 0x08050c7e in put_entries (np=0x8aaefa0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#155 0x08050c7e in put_entries (np=0x8aaef50)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#156 0x08050c7e in put_entries (np=0x8aaeef8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#157 0x08050c7e in put_entries (np=0x8aaeea8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#158 0x08050c7e in put_entries (np=0x8aaee58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#159 0x08050c7e in put_entries (np=0x8aaee00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#160 0x08050c7e in put_entries (np=0x8aaedb0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#161 0x08050c7e in put_entries (np=0x8aaed60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#162 0x08050c7e in put_entries (np=0x8aaed08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#163 0x08050c7e in put_entries (np=0x8aaecb8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#164 0x08050c7e in put_entries (np=0x8aaec68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#165 0x08050c7e in put_entries (np=0x8aaec10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#166 0x08050c7e in put_entries (np=0x8aaebc0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#167 0x08050c7e in put_entries (np=0x8aaeb70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#168 0x08050c7e in put_entries (np=0x8aaeb18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#169 0x08050c7e in put_entries (np=0x8aaeac8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#170 0x08050c7e in put_entries (np=0x8aaea78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#171 0x08050c7e in put_entries (np=0x8aaea20)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#172 0x08050c7e in put_entries (np=0x8aae9d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#173 0x08050c7e in put_entries (np=0x8aae980)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#174 0x08050c7e in put_entries (np=0x8aae928)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#175 0x08050c7e in put_entries (np=0x8aae8d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#176 0x08050c7e in put_entries (np=0x8aae888)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#177 0x08050c7e in put_entries (np=0x8aae830)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#178 0x08050c7e in put_entries (np=0x8aae7e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#179 0x08050c7e in put_entries (np=0x8aae790)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#180 0x08050c7e in put_entries (np=0x8aae738)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#181 0x08050c7e in put_entries (np=0x8aae6e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#182 0x08050c7e in put_entries (np=0x8aae698)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#183 0x08050c7e in put_entries (np=0x8aae640)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#184 0x08050c7e in put_entries (np=0x8aae5f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#185 0x08050c7e in put_entries (np=0x8aae5a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#186 0x08050c7e in put_entries (np=0x8aae548)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#187 0x08050c7e in put_entries (np=0x8aae4f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#188 0x08050c7e in put_entries (np=0x8aae4a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#189 0x08050c7e in put_entries (np=0x8aae450)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#190 0x08050c7e in put_entries (np=0x8aae400)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#191 0x08050c7e in put_entries (np=0x8aae3b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#192 0x08050c7e in put_entries (np=0x8aae358)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#193 0x08050c7e in put_entries (np=0x8aae308)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#194 0x08050c7e in put_entries (np=0x8aae2b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#195 0x08050c7e in put_entries (np=0x8aae260)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#196 0x08050c7e in put_entries (np=0x8aae210)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#197 0x08050c7e in put_entries (np=0x8aae1c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#198 0x08050c7e in put_entries (np=0x8aae168)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#199 0x08050c7e in put_entries (np=0x8aae118)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#200 0x08050c7e in put_entries (np=0x8aae0c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#201 0x08050c7e in put_entries (np=0x8aae070)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#202 0x08050c7e in put_entries (np=0x8aae020)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#203 0x08050c7e in put_entries (np=0x8aadfd0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#204 0x08050c7e in put_entries (np=0x8aadf78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#205 0x08050c7e in put_entries (np=0x8aadf28)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#206 0x08050c7e in put_entries (np=0x8aaded8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#207 0x08050c7e in put_entries (np=0x8aade80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#208 0x08050c7e in put_entries (np=0x8aade30)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#209 0x08050c7e in put_entries (np=0x8aadde0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#210 0x08050c7e in put_entries (np=0x8aadd88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#211 0x08050c7e in put_entries (np=0x8aadd38)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#212 0x08050c7e in put_entries (np=0x8aadce8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#213 0x08050c7e in put_entries (np=0x8aadc90)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#214 0x08050c7e in put_entries (np=0x8aadc40)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#215 0x08050c7e in put_entries (np=0x8aadbf0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#216 0x08050c7e in put_entries (np=0x8aadb98)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#217 0x08050c7e in put_entries (np=0x8aadb48)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#218 0x08050c7e in put_entries (np=0x8aadaf8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#219 0x08050c7e in put_entries (np=0x8aadaa0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#220 0x08050c7e in put_entries (np=0x8aada50)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#221 0x08050c7e in put_entries (np=0x8aada00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#222 0x08050c7e in put_entries (np=0x8aad9a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#223 0x08050c7e in put_entries (np=0x8aad958)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#224 0x08050c7e in put_entries (np=0x8aad908)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#225 0x08050c7e in put_entries (np=0x8aad8b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#226 0x08050c7e in put_entries (np=0x8aad860)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#227 0x08050c7e in put_entries (np=0x8aad810)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#228 0x08050c7e in put_entries (np=0x8aad7b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#229 0x08050c7e in put_entries (np=0x8aad768)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#230 0x08050c7e in put_entries (np=0x8aad718)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#231 0x08050c7e in put_entries (np=0x8aad6c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#232 0x08050c7e in put_entries (np=0x8aad670)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#233 0x08050c7e in put_entries (np=0x8aad620)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#234 0x08050c7e in put_entries (np=0x8aad5c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#235 0x08050c7e in put_entries (np=0x8aad578)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#236 0x08050c7e in put_entries (np=0x8aad528)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#237 0x08050c7e in put_entries (np=0x8aad4d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#238 0x08050c7e in put_entries (np=0x8aad480)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#239 0x08050c7e in put_entries (np=0x8aad430)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#240 0x08050c7e in put_entries (np=0x8aad3d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#241 0x08050c7e in put_entries (np=0x8aad388)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#242 0x08050c7e in put_entries (np=0x8aad338)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#243 0x08050c7e in put_entries (np=0x8aad2e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#244 0x08050c7e in put_entries (np=0x8aad290)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#245 0x08050c7e in put_entries (np=0x8aad240)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#246 0x08050c7e in put_entries (np=0x8aad1e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#247 0x08050c7e in put_entries (np=0x8aad198)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#248 0x08050c7e in put_entries (np=0x8aad148)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#249 0x08050c7e in put_entries (np=0x8aad0f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#250 0x08050c7e in put_entries (np=0x8aad0a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#251 0x08050c7e in put_entries (np=0x8aad050)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#252 0x08050c7e in put_entries (np=0x8aacff8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#253 0x08050c7e in put_entries (np=0x8aacfa8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#254 0x08050c7e in put_entries (np=0x8aacf58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#255 0x08050c7e in put_entries (np=0x8aacf00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#256 0x08050c7e in put_entries (np=0x8aaceb0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#257 0x08050c7e in put_entries (np=0x8aace60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#258 0x08050c7e in put_entries (np=0x8aace08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#259 0x08050c7e in put_entries (np=0x8aacdb8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#260 0x08050c7e in put_entries (np=0x8aacd68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#261 0x08050c7e in put_entries (np=0x8aacd10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#262 0x08050c7e in put_entries (np=0x8aaccc0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#263 0x08050c7e in put_entries (np=0x8aacc70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#264 0x08050c7e in put_entries (np=0x8aacc18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#265 0x08050c7e in put_entries (np=0x8aacbc8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#266 0x08050c7e in put_entries (np=0x8aacb78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#267 0x08050c7e in put_entries (np=0x8aacb20)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#268 0x08050c7e in put_entries (np=0x8aacad0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#269 0x08050c7e in put_entries (np=0x8aaca80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#270 0x08050c7e in put_entries (np=0x8aaca28)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#271 0x08050c7e in put_entries (np=0x8aac9d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#272 0x08050c7e in put_entries (np=0x8aac988)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#273 0x08050c7e in put_entries (np=0x8aac930)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#274 0x08050c7e in put_entries (np=0x8aac8e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#275 0x08050c7e in put_entries (np=0x8aac890)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#276 0x08050c7e in put_entries (np=0x8aac838)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#277 0x08050c7e in put_entries (np=0x8aac7e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#278 0x08050c7e in put_entries (np=0x8aac798)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#279 0x08050c7e in put_entries (np=0x8aac740)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#280 0x08050c7e in put_entries (np=0x8aac6f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#281 0x08050c7e in put_entries (np=0x8aac6a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#282 0x08050c7e in put_entries (np=0x8aac648)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#283 0x08050c7e in put_entries (np=0x8aac5f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#284 0x08050c7e in put_entries (np=0x8aac5a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#285 0x08050c7e in put_entries (np=0x8aac550)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#286 0x08050c7e in put_entries (np=0x8aac500)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#287 0x08050c7e in put_entries (np=0x8aac4b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#288 0x08050c7e in put_entries (np=0x8aac458)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#289 0x08050c7e in put_entries (np=0x8aac408)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#290 0x08050c7e in put_entries (np=0x8aac3b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#291 0x08050c7e in put_entries (np=0x8aac360)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#292 0x08050c7e in put_entries (np=0x8aac310)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#293 0x08050c7e in put_entries (np=0x8aac2c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#294 0x08050c7e in put_entries (np=0x8aac268)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#295 0x08050c7e in put_entries (np=0x8aac218)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#296 0x08050c7e in put_entries (np=0x8aac1c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#297 0x08050c7e in put_entries (np=0x8aac170)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#298 0x08050c7e in put_entries (np=0x8aac120)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#299 0x08050c7e in put_entries (np=0x8aac0d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#300 0x08050c7e in put_entries (np=0x8aac078)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#301 0x08050c7e in put_entries (np=0x8aac028)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#302 0x08050c7e in put_entries (np=0x8aabfd8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#303 0x08050c7e in put_entries (np=0x8aabf80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#304 0x08050c7e in put_entries (np=0x8aabf30)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#305 0x08050c7e in put_entries (np=0x8aabee0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#306 0x08050c7e in put_entries (np=0x8aabe88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#307 0x08050c7e in put_entries (np=0x8aabe38)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#308 0x08050c7e in put_entries (np=0x8aabde8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#309 0x08050c7e in put_entries (np=0x8aabd90)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#310 0x08050c7e in put_entries (np=0x8aabd40)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#311 0x08050c7e in put_entries (np=0x8aabcf0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#312 0x08050c7e in put_entries (np=0x8aabc98)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#313 0x08050c7e in put_entries (np=0x8aabc48)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#314 0x08050c7e in put_entries (np=0x8aabbf8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#315 0x08050c7e in put_entries (np=0x8aabba0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#316 0x08050c7e in put_entries (np=0x8aabb50)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#317 0x08050c7e in put_entries (np=0x8aabb00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#318 0x08050c7e in put_entries (np=0x8aabaa8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#319 0x08050c7e in put_entries (np=0x8aaba58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#320 0x08050c7e in put_entries (np=0x8aaba08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#321 0x08050c7e in put_entries (np=0x8aab9b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#322 0x08050c7e in put_entries (np=0x8aab960)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#323 0x08050c7e in put_entries (np=0x8aab910)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#324 0x08050c7e in put_entries (np=0x8aab8b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#325 0x08050c7e in put_entries (np=0x8aab868)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#326 0x08050c7e in put_entries (np=0x8aab818)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#327 0x08050c7e in put_entries (np=0x8aab7c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#328 0x08050c7e in put_entries (np=0x8aab770)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#329 0x08050c7e in put_entries (np=0x8aab720)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#330 0x08050c7e in put_entries (np=0x8aab6c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#331 0x08050c7e in put_entries (np=0x8aab678)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#332 0x08050c7e in put_entries (np=0x8aab628)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#333 0x08050c7e in put_entries (np=0x8aab5d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#334 0x08050c7e in put_entries (np=0x8aab580)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#335 0x08050c7e in put_entries (np=0x8aab530)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#336 0x08050c7e in put_entries (np=0x8aab4d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#337 0x08050c7e in put_entries (np=0x8aab488)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#338 0x08050c7e in put_entries (np=0x8aab438)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#339 0x08050c7e in put_entries (np=0x8aab3e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#340 0x08050c7e in put_entries (np=0x8aab390)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#341 0x08050c7e in put_entries (np=0x8aab340)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#342 0x08050c7e in put_entries (np=0x8aab2e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#343 0x08050c7e in put_entries (np=0x8aab298)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#344 0x08050c7e in put_entries (np=0x8aab248)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#345 0x08050c7e in put_entries (np=0x8aab1f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#346 0x08050c7e in put_entries (np=0x8aab1a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#347 0x08050c7e in put_entries (np=0x8aab150)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#348 0x08050c7e in put_entries (np=0x8aab0f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#349 0x08050c7e in put_entries (np=0x8aab0a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#350 0x08050c7e in put_entries (np=0x8aab058)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#351 0x08050c7e in put_entries (np=0x8aab000)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#352 0x08050c7e in put_entries (np=0x8aaafb0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#353 0x08050c7e in put_entries (np=0x8aaaf60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#354 0x08050c7e in put_entries (np=0x8aaaf08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#355 0x08050c7e in put_entries (np=0x8aaaeb8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#356 0x08050c7e in put_entries (np=0x8aaae68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#357 0x08050c7e in put_entries (np=0x8aaae10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#358 0x08050c7e in put_entries (np=0x8aaadc0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#359 0x08050c7e in put_entries (np=0x8aaad70)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#360 0x08050c7e in put_entries (np=0x8aaad18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#361 0x08050c7e in put_entries (np=0x8aaacc8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#362 0x08050c7e in put_entries (np=0x8aaac78)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#363 0x08050c7e in put_entries (np=0x8aaac20)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#364 0x08050c7e in put_entries (np=0x8aaabd0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#365 0x08050c7e in put_entries (np=0x8aaab80)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#366 0x08050c7e in put_entries (np=0x8aaab28)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#367 0x08050c7e in put_entries (np=0x8aaaad8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#368 0x08050c7e in put_entries (np=0x8aaaa88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#369 0x08050c7e in put_entries (np=0x8aaaa30)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#370 0x08050c7e in put_entries (np=0x8aaa9e0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#371 0x08050c7e in put_entries (np=0x8aaa990)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#372 0x08050c7e in put_entries (np=0x8aaa938)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#373 0x08050c7e in put_entries (np=0x8aaa8e8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#374 0x08050c7e in put_entries (np=0x8aaa898)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#375 0x08050c7e in put_entries (np=0x8aaa840)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#376 0x08050c7e in put_entries (np=0x8aaa7f0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#377 0x08050c7e in put_entries (np=0x8aaa7a0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#378 0x08050c7e in put_entries (np=0x8aaa748)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#379 0x08050c7e in put_entries (np=0x8aaa6f8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#380 0x08050c7e in put_entries (np=0x8aaa6a8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#381 0x08050c7e in put_entries (np=0x8aaa650)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#382 0x08050c7e in put_entries (np=0x8aaa600)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#383 0x08050c7e in put_entries (np=0x8aaa5b0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#384 0x08050c7e in put_entries (np=0x8aaa558)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#385 0x08050c7e in put_entries (np=0x8aaa508)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#386 0x08050c7e in put_entries (np=0x8aaa4b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#387 0x08050c7e in put_entries (np=0x8aaa460)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#388 0x08050c7e in put_entries (np=0x8aaa410)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#389 0x08050c7e in put_entries (np=0x8aaa3c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#390 0x08050c7e in put_entries (np=0x8aaa368)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#391 0x08050c7e in put_entries (np=0x8aaa318)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#392 0x08050c7e in put_entries (np=0x8aaa2c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#393 0x08050c7e in put_entries (np=0x8aaa270)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#394 0x08050c7e in put_entries (np=0x8aaa220)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#395 0x08050c7e in put_entries (np=0x8aaa1d0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#396 0x08050c7e in put_entries (np=0x8aaa178)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#397 0x08050c7e in put_entries (np=0x8aaa128)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#398 0x08050c7e in put_entries (np=0x8aaa0d8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#399 0x08050c7e in put_entries (np=0x8aaa080)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#400 0x08050c7e in put_entries (np=0x8aaa030)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#401 0x08050c7e in put_entries (np=0x8aa9fe0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#402 0x08050c7e in put_entries (np=0x8aa9f88)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#403 0x08050c7e in put_entries (np=0x8aa9f38)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#404 0x08050c7e in put_entries (np=0x8aa9ee8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#405 0x08050c7e in put_entries (np=0x8aa9e90)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#406 0x08050c7e in put_entries (np=0x8aa9e40)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#407 0x08050c7e in put_entries (np=0x8aa9df0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#408 0x08050c7e in put_entries (np=0x8aa9d98)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#409 0x08050c7e in put_entries (np=0x8aa9d48)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#410 0x08050c7e in put_entries (np=0x8aa9cf8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#411 0x08050c7e in put_entries (np=0x8aa9ca0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#412 0x08050c7e in put_entries (np=0x8aa9c50)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#413 0x08050c7e in put_entries (np=0x8aa9c00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#414 0x08050c7e in put_entries (np=0x8aa9ba8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#415 0x08050c7e in put_entries (np=0x8aa9b58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#416 0x08050c7e in put_entries (np=0x8aa9b08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#417 0x08050c7e in put_entries (np=0x8aa9ab0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#418 0x08050c7e in put_entries (np=0x8aa9a60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#419 0x08050c7e in put_entries (np=0x8aa9a10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#420 0x08050c7e in put_entries (np=0x8aa99b8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#421 0x08050c7e in put_entries (np=0x8aa9968)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#422 0x08050c7e in put_entries (np=0x8aa9918)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#423 0x08050c7e in put_entries (np=0x8aa98c0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#424 0x08050c7e in put_entries (np=0x8aa9870)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#425 0x08050c7e in put_entries (np=0x8aa9820)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#426 0x08050c7e in put_entries (np=0x8aa97c8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#427 0x08050c7e in put_entries (np=0x8aa9778)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
...
#69629 0x08050c7e in put_entries (np=0x8534d00)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69630 0x08050c7e in put_entries (np=0x8534ca8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69631 0x08050c7e in put_entries (np=0x8534c58)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69632 0x08050c7e in put_entries (np=0x8534c08)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69633 0x08050c7e in put_entries (np=0x8534bb0)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69634 0x08050c7e in put_entries (np=0x8534b60)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69635 0x08050c7e in put_entries (np=0x8534b10)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69636 0x08050c7e in put_entries (np=0x8534ab8)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69637 0x08050c7e in put_entries (np=0x8534a68)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
#69638 0x08050c7e in put_entries (np=0x8534a18)
    at /home/user/emacs23.src/emacs-23.1/lib-src/etags.c:2306
	fdp = (fdesc *) 0x8060098
...

Hubi

[-- Attachment #2: test_nosegf.c.gz --]
[-- Type: application/x-gzip, Size: 18103 bytes --]

[-- Attachment #3: test_segf.c.gz --]
[-- Type: application/x-gzip, Size: 17752 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2010-04-06 13:44 bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption Hubert Gosselmeyer
@ 2016-08-14 21:38 ` Alex
  2016-08-20  3:32 ` bug#5847: [Hubert Gosselmeyer] " Alex
  1 sibling, 0 replies; 9+ messages in thread
From: Alex @ 2016-08-14 21:38 UTC (permalink / raw)
  To: Hubert Gosselmeyer; +Cc: 5847

Hubert Gosselmeyer <gosselmeyer@googlemail.com> writes:

> Hi,
>
> the GNU Emacs TAGS tool 'etags' seems to have problems if source code is not
> probably indented and new scopes are created within procedures. I found this
> out by using etags on generated code where a lot of structures where created
> on the heap, initialized and assigned to an array of pointers.

Hi, do you still encounter this issue? I tried to reproduce with Emacs
24.5 but both files did not segfault for me.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: [Hubert Gosselmeyer] Re: bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2010-04-06 13:44 bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption Hubert Gosselmeyer
  2016-08-14 21:38 ` Alex
@ 2016-08-20  3:32 ` Alex
  2016-08-20 15:55   ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Alex @ 2016-08-20  3:32 UTC (permalink / raw)
  To: 5847


[-- Attachment #0: Type: message/rfc822, Size: 927761 bytes --]

[-- Attachment #1.1.1: Type: text/plain, Size: 1043 bytes --]

Hi Alex,

I rechecked the issue with my new hardware (got a new laptop meanwhile).
The issue does not occur for the files attached on the bug report anymore.

As I suspect that it has something to do with large memory allocation, I
produced some larger files
with an python script. I tested it on my machine still with etags (GNU
Emacs 23.1) and gave the files
to a collegue, who tested it with etags (GNU Emacs 24.3). On both etags
crashed for test_seg.c.






On Sun, Aug 14, 2016 at 11:38 PM, Alex <agrambot@gmail.com> wrote:

> Hubert Gosselmeyer <gosselmeyer@googlemail.com> writes:
>
> > Hi,
> >
> > the GNU Emacs TAGS tool 'etags' seems to have problems if source code is
> not
> > probably indented and new scopes are created within procedures. I found
> this
> > out by using etags on generated code where a lot of structures where
> created
> > on the heap, initialized and assigned to an array of pointers.
>
> Hi, do you still encounter this issue? I tried to reproduce with Emacs
> 24.5 but both files did not segfault for me.
>

[-- Attachment #1.1.2: Type: text/html, Size: 1562 bytes --]

[-- Attachment #1.2: test_noseg.c.gz --]
[-- Type: application/x-gzip, Size: 369681 bytes --]

[-- Attachment #1.3: test_seg.c.gz --]
[-- Type: application/x-gzip, Size: 311652 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: segf.py --]
[-- Type: text/x-python; name=segf.py, Size: 699 bytes --]

from subprocess import call

with open('test_seg.c', 'w') as f:
    f.write("""
struct test {
  long i;
};

struct test* testArr[32000];

long i;

int main(){

  i = 0;
)
""")    
    for i in range(1, 900000):
        f.write("""
{
  struct test *t = malloc(sizeof(struct test));
  i++;
  t->i = i;

  testArr[i] = t;
  free(t);
}
""")
    f.write("}")




with open('test_noseg.c', 'w') as f:
    f.write("""
struct test {
  long i;
};

struct test* testArr[32000];

long i;

int main(){

  i = 0;
)
""")    
    for i in range(1, 900000):
        f.write("""
  {
    struct test *t = malloc(sizeof(struct test));
    i++;
    t->i = i;

    testArr[i] = t;
    free(t);
  }
""")
    f.write("}")

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: [Hubert Gosselmeyer] Re: bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20  3:32 ` bug#5847: [Hubert Gosselmeyer] " Alex
@ 2016-08-20 15:55   ` Eli Zaretskii
  2016-08-20 16:27     ` Eli Zaretskii
  2016-08-20 17:57     ` Ivan Shmakov
  0 siblings, 2 replies; 9+ messages in thread
From: Eli Zaretskii @ 2016-08-20 15:55 UTC (permalink / raw)
  To: Alex; +Cc: 5847

> From: Alex <agrambot@gmail.com>
> Date: Fri, 19 Aug 2016 21:32:25 -0600
> 
> From: Hubert Gosselmeyer <gosselmeyer@googlemail.com>
> Date: Thu, 18 Aug 2016 14:15:46 +0200
> Subject: Re: bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
> To: Alex <agrambot@gmail.com>
> 
> I rechecked the issue with my new hardware (got a new laptop meanwhile). 
> The issue does not occur for the files attached on the bug report anymore.
> 
> As I suspect that it has something to do with large memory allocation, I produced some larger files
> with an python script. I tested it on my machine still with etags (GNU Emacs 23.1) and gave the files
> to a collegue, who tested it with etags (GNU Emacs 24.3). On both etags crashed for test_seg.c. 

That file blows up the runtime stack because of recursive calls to
put_entries when etags writes out the tree of nodes it collected.
Since recovery from stack overflow is inherently OS dependent and
unreliable, I don't see what we can do in this case.  Even if we do
detect the upcoming stack overflow, the only thing we can do is print
an error message and quit.  A workaround is to build Etags with a
larger stack.

Thanks.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: [Hubert Gosselmeyer] Re: bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20 15:55   ` Eli Zaretskii
@ 2016-08-20 16:27     ` Eli Zaretskii
  2016-08-31 15:59       ` Eli Zaretskii
  2016-08-20 17:57     ` Ivan Shmakov
  1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2016-08-20 16:27 UTC (permalink / raw)
  To: agrambot; +Cc: 5847, Hubert Gosselmeyer

> Date: Sat, 20 Aug 2016 18:55:36 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 5847@debbugs.gnu.org
> 
> That file blows up the runtime stack because of recursive calls to
> put_entries when etags writes out the tree of nodes it collected.
> Since recovery from stack overflow is inherently OS dependent and
> unreliable, I don't see what we can do in this case.  Even if we do
> detect the upcoming stack overflow, the only thing we can do is print
> an error message and quit.

Actually, one way of avoiding stack overflow would be to use some BFS
algorithm that allocates memory off the heap.  Patches welcome.

OTOH, the program in question is 91MB of invalid C, so I guess fixing
this is not very urgent.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20 15:55   ` Eli Zaretskii
  2016-08-20 16:27     ` Eli Zaretskii
@ 2016-08-20 17:57     ` Ivan Shmakov
  2016-08-20 18:18       ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Ivan Shmakov @ 2016-08-20 17:57 UTC (permalink / raw)
  To: 5847; +Cc: Alex

>>>>> Eli Zaretskii <eliz@gnu.org> writes:

[…]

 > That file blows up the runtime stack because of recursive calls to
 > put_entries when etags writes out the tree of nodes it collected.
 > Since recovery from stack overflow is inherently OS dependent and
 > unreliable, I don't see what we can do in this case.  Even if we do
 > detect the upcoming stack overflow, the only thing we can do is print
 > an error message and quit.  A workaround is to build Etags with a
 > larger stack.

	If it’s the OS stack we’re talking about, the limit on its size
	may very well be a run-time parameter on Unix-like systems;
	check the ‘ulimit’ shell command, for instance.

	E. g., for Bash on GNU/Linux:

$ ulimit -Ss ; ulimit -Hs 
5604
unlimited
$ ulimit -s 65536 
$ ulimit -Ss 
65536
$ 

-- 
FSF associate member #7257  http://am-1.org/~ivan/      … 3013 B6A0 230E 334A





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20 17:57     ` Ivan Shmakov
@ 2016-08-20 18:18       ` Eli Zaretskii
  2016-08-20 19:17         ` Ivan Shmakov
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2016-08-20 18:18 UTC (permalink / raw)
  To: Ivan Shmakov; +Cc: 5847, agrambot

> From: Ivan Shmakov <ivan@siamics.net>
> Date: Sat, 20 Aug 2016 17:57:34 +0000
> Cc: Alex <agrambot@gmail.com>
> 
> 	If it’s the OS stack we’re talking about, the limit on its size
> 	may very well be a run-time parameter on Unix-like systems;
> 	check the ‘ulimit’ shell command, for instance.
> 
> 	E. g., for Bash on GNU/Linux:
> 
> $ ulimit -Ss ; ulimit -Hs 
> 5604
> unlimited
> $ ulimit -s 65536 
> $ ulimit -Ss 
> 65536
> $ 

Yes, but that, too, ends at some point.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20 18:18       ` Eli Zaretskii
@ 2016-08-20 19:17         ` Ivan Shmakov
  0 siblings, 0 replies; 9+ messages in thread
From: Ivan Shmakov @ 2016-08-20 19:17 UTC (permalink / raw)
  To: 5847

>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>>>>> From: Ivan Shmakov  Date: Sat, 20 Aug 2016 17:57:34 +0000

 >>> A workaround is to build Etags with a larger stack.

 >> If it’s the OS stack we’re talking about, the limit on its size may
 >> very well be a run-time parameter on Unix-like systems; check the
 >> ‘ulimit’ shell command, for instance.

[…]

 > Yes, but that, too, ends at some point.

	I’ve responded mainly to the “build with a larger stack” part.

	If the issue at hand is frequent enough (which I gather is not
	the case), it may make sense to document the workaround in
	etc/PROBLEMS until the problem gets fixed properly.  (There’s a
	passing mention of using ‘ulimit’ to increase stack size for
	Emacs proper already, BTW.)

-- 
FSF associate member #7257  http://am-1.org/~ivan/      … 3013 B6A0 230E 334A





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#5847: [Hubert Gosselmeyer] Re: bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption
  2016-08-20 16:27     ` Eli Zaretskii
@ 2016-08-31 15:59       ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2016-08-31 15:59 UTC (permalink / raw)
  To: agrambot; +Cc: gosselmeyer, 5847-done

> Date: Sat, 20 Aug 2016 19:27:21 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 5847@debbugs.gnu.org, Hubert Gosselmeyer <gosselmeyer@googlemail.com>
> 
> > Date: Sat, 20 Aug 2016 18:55:36 +0300
> > From: Eli Zaretskii <eliz@gnu.org>
> > Cc: 5847@debbugs.gnu.org
> > 
> > That file blows up the runtime stack because of recursive calls to
> > put_entries when etags writes out the tree of nodes it collected.
> > Since recovery from stack overflow is inherently OS dependent and
> > unreliable, I don't see what we can do in this case.  Even if we do
> > detect the upcoming stack overflow, the only thing we can do is print
> > an error message and quit.
> 
> Actually, one way of avoiding stack overflow would be to use some BFS
> algorithm that allocates memory off the heap.  Patches welcome.

I've done that now and committed the changes on the master branch.
The resulting etags successfully tagged a dozen of large source trees
together, whereas the original version crashed quite quickly.  The
test file posted here also no longer causes a crash.

The non-recursive version is somewhat slower, so patches to speed it
up are welcome.

I'm closing this bug.





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-08-31 15:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-06 13:44 bug#5847: ETAGS: Segmentation fault, because of incorrect scope presumption Hubert Gosselmeyer
2016-08-14 21:38 ` Alex
2016-08-20  3:32 ` bug#5847: [Hubert Gosselmeyer] " Alex
2016-08-20 15:55   ` Eli Zaretskii
2016-08-20 16:27     ` Eli Zaretskii
2016-08-31 15:59       ` Eli Zaretskii
2016-08-20 17:57     ` Ivan Shmakov
2016-08-20 18:18       ` Eli Zaretskii
2016-08-20 19:17         ` Ivan Shmakov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).