From: Andreas H. <AHE...@de...> - 2002-04-10 08:04:20
|
I have seen this problem some days ago, and have a fix for it. I think only one if-condition has to been changed in kl_stabs.c ... It is not a problem of gcc-3.1. IMHO, the stab type entry is correct. cleanup:(2,13)=*(2,14)=f(2,15)=(2,15),384,32 It is a nested type definition: cleanup is name of type (2,13) (2,13) is of type pointer to (2,14) (2,14) is a function type with return value (2,15) (2,15) is of type void BTW, the C void type is defined as itself. The problem is that currently lcrash is not able to handle nested type defintions for type void correctly. (I will provide the fix asap ;-) Regards, Andreas -- Linux for eServer Development Tel : +49-7031-16-4640 Notes mail : Andreas Herrmann/GERMANY/IBM@IBMDE email : ahe...@de... |---------+--------------------------------------> | | SL Baur | | | <st...@bs...| | | > | | | Sent by: | | | lkc...@li...ur| | | ceforge.net | | | | | | | | | 04/10/02 09:37 AM | | | Please respond to SL Baur | | | | |---------+--------------------------------------> >------------------------------------------------------------------------------------------------------------------------| | | | To: lkc...@li... | | cc: | | Subject: [lkcd-devel] gcc-3.1 considered harmful | | | | | >------------------------------------------------------------------------------------------------------------------------| gcc-3.1 appears to have a problem with stab generation. I attempted to run lcrash on a kernel and Kerntypes compiled with gcc-3.1 and got the following: get_embedded_type: stab type references itself! get_embedded_type: stab type references itself! get_embedded_type: stab type references itself! [repeated] Segmentation fault (core dumped) # A stack backtrace shows that it is infinitely recursing into find_embedded_type. The stab entry that it is choking on: cleanup:(2,13)=*(2,14)=f(2,15)=(2,15),384,32 (from struct module in module.h) is clearly bad, but I think the error could be handled more gracefully. The attached one line patch stops the recursion and lcrash exits. I get really nervous when programs run by root can overflow their stacks when fed bad data. #### stacktrace has been removed from this note on April 10 2002 by Andreas Herrmann #### stab_patch has been removed from this note on April 10 2002 by Andreas Herrmann |