On Tue, Jun 25, 2002 at 12:50:14PM -0500, V C Ravi wrote:

> > $1 = 116 't'
> 
> 1. What do the warning messages in gdb-5.1.90CVS-5 mean ?

Here is my session:
        # /sbin/insmod hello.o
        Warning: loading hello.o will taint the kernel: no license
        # gdb hello.o
        GNU gdb Red Hat Linux (5.1.90CVS-5)
        Copyright 2002 Free Software Foundation, Inc.
        GDB is free software, covered by the GNU General Public License, and you are
        welcome to change it and/or distribute copies of it under certain conditions.
        Type "show copying" to see the conditions.
        There is absolutely no warranty for GDB.  Type "show warranty" for details.
        This GDB was configured as "i386-redhat-linux"...
        (gdb) l
        1       #include <rtl.h>
        2       #include <time.h>
        3       #include <pthread.h>
        4       #include <rtl_debug.h>
        5       
        6       pthread_t thread = NULL;
        7       
        8       float gen_count = 0;
        9       void * start_routine(void *arg) {
        10      
        (gdb) target remote /dev/rtf10
        Remote debugging using /dev/rtf10
        [New Thread -1035141120]
        [Switching to Thread -1035141120]
        start_routine (arg=0x1) at hello.c:23
        23                      pthread_wait_np ();
        warning: shared library handler failed to enable breakpoint
        (gdb) n
        24                      rtl_printf("Debug count = %d %c\n", (int)gen_count, 
option);
        (gdb) n
        25                      gen_count += 1.0;
        (gdb) info locals
        gen_var = 0
        gen_str = "test string\0\0\0\0\0\0\0\0"
        option = 116 't'
        (gdb) q
        The program is running.  Exit anyway? (y or n) y

As you see, there is only ONE warning printed, if you remember to do the 'list'
command before the 'target remote' command.

> 2. Why are all the symbols not read in completely in gdb-4.18-11 ?

The symbols are read completly. What is happenning in your example is that the
compiler is optimizing the source and since 'option' (for example) is not used 
later in your function the compiler is removing it completly. Just use normally
the variables and they will show up in the debugger.

Note however that the float variables seem to be more difficult to trace with
the debugger. You need to use pthread_setfp_np() to enable floating poing
operations in your thread anyway (you aren't doing it in your example), but even
after that the debugger doesn't seem to access the value correctly...

> 3. Why are all the symbols visible *when declared static* ?

When declared static, the compiler cannot remove the variables, even if they
are not used, since an external object file could reference them. 

> 4. What does the 116 in the output of "print option" stand for ?

't' is ASCII 116.


Stelian.
-- 
Stelian Pop <[EMAIL PROTECTED]>
Alcove - http://www.alcove.com
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to