This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/286: Gdb is currently not able to debug a pthread linked application on linux-mipsel targets.



>Number:         286
>Category:       gdb
>Synopsis:       Gdb is currently not able to debug a pthread linked application on linux-mipsel targets.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 21 04:08:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     thaber@tee.toshiba.de
>Release:        5.1
>Organization:
>Environment:
config:               mipsel-unknown-linux-gnu
platform:           mipsel  (tx49 toshiba)
linux:                 Red Hat Linux release 7.0 (MIPS) Kernel 2.4.6 on 
a mips
compiler:          gcc version 2.95.3 20010315 (release)



>Description:
Hi all,

currently we are not able to debug a pthread linked application with gdb ...

     GNU gdb 5.1
    Copyright 2001 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 "mipsel-unknown-linux-gnu"...
    (gdb) break main
    Breakpoint 1 at 0x40091c
    (gdb) run
    Starting program: /home/teehab/DVB/Linux/Default/test2
    [New Thread 1024 (LWP 380)]

    Program received signal SIGTRAP, Trace/breakpoint trap.
    [Switching to Thread 1024 (LWP 380)]
    warning: Warning: GDB can't find the start of the function at
    0x40080000.

        GDB is unable to find the start of the function at 0x40080000
    and thus can't determine the size of that function's stack frame.
    This means that GDB may be unable to access that stack frame, or
    the frames below it.
        This problem is most likely caused by an invalid program counter or
    stack pointer.
        However, if you think GDB should simply search farther back
    from 0x40080000 for code which looks like the beginning of a
    function, you can increase the range of the search using the `set
    heuristic-fence-post' command.
    0x40080000 in ?? ()



When setting heuristic-fence-post to 20 the result is ...

    (gdb) break main
    Breakpoint 1 at 0x40091c
    (gdb) run
    Starting program: /home/teehab/DVB/Linux/Default/test2
    [New Thread 1024 (LWP 382)]

    Program received signal SIGTRAP, Trace/breakpoint trap.
    [Switching to Thread 1024 (LWP 382)]
    Cannot access memory at address 0x4007fffc

The test application compiled with 'gcc test.c -lpthread -o test'  :


    #include <pthread.h>

#define MAX_THREAD 40

    void* function(void*p)
    {
      while(1) printf("X%i",(int)p);
      return 0;
    }


    int main(int argc, char *argv[])
    {
      int i=0;

      pthread_t threadID=-1;

      for(i=0;i<MAX_THREAD;i++)
      {
       pthread_create(&threadID, NULL, function, (void*)i);
      }

      return 0;
    }

    Thanks for your help,

    tom haber








>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]