It seems that the labels for all functions are stored in a global structur "dwCFIRoot" that is read to create the debug entries in the asm file. It's values are set in SDCCast.c createFunction() throw the calls of -> eBBlockFromiCode() -> port->assignRegiste() aka "stm8_asignRegister()" -> genSTM8Code() -> debugFile->writeFunction aka "dwWriteFunction()" interesting is line 7652 in SDCCast.c in function createFunction here is eBBlockFromiCode are called and after that there is a if(staticAutos) that...
invoking the assembler by "hand" gives additional errors: sdcc -mstm8 --debug --out-fmt-elf -S test.c sdasstm8 -y -g -l test.asm => test.asm:505: Error: <r> relocation error sdasstm8 -y -g -o test.asm => segmentation fault sdasstm8 -y -g -s test.asm => test.asm:505: Error: <r> relocation error line 505 is 501: Ldebug_CIE0_end: 502: .dw 0,12 503: .dw 0,(Ldebug_CIE0_start-4) 504: .dw 0,0 ;initial loc 505: .dw 0,(null)-(null) 506: 507: .area .debug_frame (NOLOAD) 508: .dw 0 509: .dw Ldebug_CIE1_end...
invoking the assembler by "hand" gives additional errors: sdcc -mstm8 --debug --out-fmt-elf -S test.c sdasstm8 -y -g -l test.asm => test.asm:505: Error: <r> relocation error sdasstm8 -y -g -o test.asm => segmentation fault sdasstm8 -y -g -s test.asm => test.asm:505: Error: <r> relocation error
Assembler Segmentation fault on STM8 when using --debug and --out-fmt-elf with static declarations
the Problem was that within Makefile.in y.tab.c is moved to SDCCy.c i changed that: --- Makefile.in.orig 2019-04-27 18:05:10.377589256 +0200 +++ Makefile.in 2019-04-27 18:05:23.821638867 +0200 @@ -128,8 +128,8 @@ SDCCy.h: SDCCy.c SDCCy.c: SDCC.y $(YACC) -d $< - mv y.tab.c $.c - mv y.tab.h $.h + cp y.tab.c $.c + cp y.tab.h $.h that way i can debug it within eclipse. when a const pointer is passed to a function. etype->select->s->noun is set to 0 while when a usual pointer is passed etype->select->s->noun...
i tried to debug that today. I can see that the error comes from yyparse(); that is called from the main funktin in SDCCmain.c. But i can't debug into it. Can someone give me a hint how i can debug this funktion and how is the sourcecode passed to it? Michael