SIGSEGV in jc1

Boehm, Hans hans_boehm@hp.com
Tue May 8 17:27:00 GMT 2001


I still see this failure both in the branch and in (my hacked version of)
the trunk.  I believe it's reproducible by

1) Downloading and unpacking
http://www.hpl.hp.com/personal/Hans_Boehm/crcalc/download/CRCalc.tar.gz

2) Making sure that JAVAC in the Makefile is a usable Java to class file
compiler, and that the gcj on the path is the right one.

3) Typing "make rpn_calc" in the root directory.

Based on the stack trace, I would guess that it also occurs in other cases
in which you're compiling from .class files which include inner classes?

Is there an easy way to diable the -ffilelist-file mechanism to work around
this?

Hans

> -----Original Message-----
> From: Boehm, Hans 
> Sent: Friday, April 20, 2001 4:28 PM
> To: 'Per Bothner'; tromey@redhat.com
> Cc: java@gcc.gnu.org
> Subject: SIGSEGV in jc1
> 
> 
> I built the current 3.0 tree on X86 with limited success.  If 
> I try to build my constructive reals calculator, it dies in 
> jc1.  The original command line mentions one .java file and 
> multiple .class files.  Here is a short debugging session:
> 
> Starting program: 
> /home/hboehm/gcc3.0/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0/jc1 
> /tmp/ccDfJjnbjx -fno-use-divide-subroutine -fuse-boehm-gc 
> -fasynchronous-exceptions -quiet -dumpbase ccDfJjnbjx -g1 
> -version -ffilelist-file -o ccDfJjnbjx.s
> GNU Java version 3.0 20010420 (prerelease) (i686-pc-linux-gnu)
> 	compiled by GNU C version 2.95.1 19990816 (release).
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x81fa7b4 in maybe_get_identifier (text=0x0) at 
> ../../gcc/gcc/stringpool.c:341
> 341	  size_t length = strlen (text);
> (gdb) where
> #0  0x81fa7b4 in maybe_get_identifier (text=0x0)
>     at ../../gcc/gcc/stringpool.c:341
> #1  0x804fa2b in java_parser_context_restore_global ()
>     at ../../gcc/gcc/java/parse.y:2729
> #2  0x8077a20 in read_class (name=0x4016d8c0)
>     at ../../gcc/gcc/java/jcf-parse.c:625
> #3  0x8077a7f in load_class (class_or_name=0x4016d8c0, verbose=1)
>     at ../../gcc/gcc/java/jcf-parse.c:658
> #4  0x8077d05 in load_inner_classes (cur_class=0x4016b8f0)
>     at ../../gcc/gcc/java/jcf-parse.c:747
> #5  0x8077a0d in read_class (name=0x4016ae00)
>     at ../../gcc/gcc/java/jcf-parse.c:621
> #6  0x8077a7f in load_class (class_or_name=0x4016b8f0, verbose=1)
>     at ../../gcc/gcc/java/jcf-parse.c:658
> #7  0x80625f0 in class_depth (clas=0x4016b8f0)
>     at ../../gcc/gcc/java/class.c:416
> #8  0x806980a in can_widen_reference_to (source_type=0x4016b9c0, 
>     target_type=0x40167f70) at ../../gcc/gcc/java/expr.c:441
> #9  0x806949f in pop_type_0 (type=0x40167f70, messagep=0xbffff724)
>     at ../../gcc/gcc/java/expr.c:350
> #10 0x8073bbc in verify_jvm_instructions (jcf=0x83367d0, 
>     byte_ops=0x8347b01 "»", length=11) at 
> ../../gcc/gcc/java/verify.c:895
> #11 0x806d57c in expand_byte_code (jcf=0x83367d0, method=0x4016f3a8)
>     at ../../gcc/gcc/java/expr.c:2702
> #12 0x8077ef4 in parse_class_file () at 
> ../../gcc/gcc/java/jcf-parse.c:835
> #13 0x8078758 in yyparse () at ../../gcc/gcc/java/jcf-parse.c:1129
> #14 0x8082a03 in compile_file (name=0xbffffa5c "/tmp/ccDfJjnbjx")
>     at ../../gcc/gcc/toplev.c:2339
> #15 0x80867cd in main (argc=13, argv=0xbffff8d4) at 
> ../../gcc/gcc/toplev.c:4924
> (gdb) up
> #1  0x804fa2b in java_parser_context_restore_global ()
>     at ../../gcc/gcc/java/parse.y:2729
> 2729	      BUILD_FILENAME_IDENTIFIER_NODE (s, input_filename);
> (gdb) p *ctxp
> $1 = {filename = 0x0, next = 0x8609f30, lexer = 0x0, 
>   marker_begining = 0 '\000', p_line = 0x0, c_line = 0x0, elc 
> = {line = 0, 
>     prev_col = 0, col = 0}, ccb_indent = 0, first_ccb_indent1 = 0, 
>   last_ccb_indent1 = 0, parser_ccb_indent = 0, osb_depth = 0, 
> osb_limit = 0, 
>   osb_number = 0x0, lineno = 153, marker_end = 0 '\000', 
> saved_data_ctx = 0, 
>   saved_data = 1, minus_seen = 0, java_error_flag = 0, 
> deprecated = 0, 
>   class_err = 0, modifier_ctx = {0x0 <repeats 11 times>}, 
>   class_type = 0x4016b8f0, function_decl = 0x4016f3a8, 
> current_jcf = 0x0, 
>   prevent_ese = 0, formal_parameter_number = 0, interface_number = 0, 
>   package = 0x0, class_list = 0x0, classd_list = 0x0, 
>   current_parsed_class = 0x0, current_parsed_class_un = 0x0, 
>   non_static_initialized = 0x0, static_initialized = 0x0, 
>   instance_initializers = 0x0, import_list = 0x0, 
> import_demand_list = 0x0, 
>   current_loop = 0x0, current_labeled_block = 0x0, pending_block = 0, 
>   explicit_constructor_p = 0}
> (gdb) 
> 
> 
> 



More information about the Java mailing list