On Tue, 2009-08-04 at 00:06 +0530, sumanth wrote:
>  > mycompiler-gcc -g file1.c file2.c
>  > mycompiler-gdb a.out
>   >> when i print "a" in file1.c , i am able to see value 10;
>   >> when i print "a" int file2.c, it prints , no symbol defined. 
> Instead I can access it with " print _a"

This sounds odd, as there is no variable a or _a in file2.c, and if you
can see a variable in one file you should be able to see if with the
same name in another file.

Anyways, I think I already answered this with my first message when I
pointed you at ASM_OUTPUT_* and ASM_GENERATE_INTERNAL_LABEL etc.  If you
compile with -g -S, and look at the assembly language, you will see that
"_a" is being used in the debug info someplace for the variable name
where "a" should be used instead.  "_a" is correct for the variable
address, but not the variable name.  So you will have to step through
your gcc port to figure out why the "_a" is incorrectly printed, and
most likely it is a bug in one of the macros I have mentioned.  Take a
look at a port that handles this correctly to see what they do
differently to make this work.

Jim


Reply via email to