This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: pthread_create, Program received signal ?, Unknown signal
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Balarama Krishna <balaram at samsung dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Mon, 1 Sep 2003 12:26:16 -0400
- Subject: Re: pthread_create, Program received signal ?, Unknown signal
- References: <1062421948.1343.136.camel@Lotus>
On Mon, Sep 01, 2003 at 06:42:29PM +0530, Balarama Krishna wrote:
> Hi,
>
> I am trying to debug a multi-threaded application on arm-linux target
> from i386-linux host using GDB-5.3.
You seem to be using glibc 2.3.x. Am I right?
If so, try CVS gdb instead. A change in the definition of SIGRTMIN
causes this symptom.
>
> I am using gcc(3.2.3) and using the same set of shared libraries (came
> with gcc(3.2.3)on the target also in order to run gdbserver.
>
> Below is my sample application
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> 1 #include <stdio.h>
> 2 #include <pthread.h>
> 3
> 4 void * call_back(void *);
> 5 int main()
> 6 {
> 7 int count=0;
> 8 pthread_t thread_id;
> 9 if ( pthread_create(&thread_id, NULL, call_back, NULL)
> != 0){
> 10 perror("pthread_create() Failed");
> 11 return 0;
> 12 }
> 13 while(1){
> 14 count++;
> 15 sleep(1);
> 16 printf("Main Thread Count (%d) \n", count);
> 17 }
> 18 }
> 19 void * call_back(void *arg)
> 20 {
> 21 int count=0;
> 22 while(1){
> 23 count++;
> 24 sleep(3);
> 25 printf("Thread Loop count (%d) \n", count);
> 26 }
> 27 }
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> Screen shot on the HOST side
>
> /%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/
> GNU gdb 5.3
> 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 "--host=i686-pc-linux-gnu
> --target=arm-linux".
> (gdb) et solib-absolute-prefix /dev/null
> Undefined command: "et". Try "help".
> (gdb) set solib-absolute-prefix /dev/null
> (gdb) set solib-search-path /home/balaram/links_to_lib_dir
> (gdb) file threads
> Reading symbols from threads...done.
> (gdb) target remote 107.108.3.197:2020
> Remote debugging using 107.108.3.197:2020
> 0x40002560 in ?? ()
> (gdb) break 9
> Breakpoint 1 at 0x84d0: file threads.c, line 9.
> (gdb) cont
> Continuing.
>
> Breakpoint 1, main () at threads.c:9
> 9 if ( pthread_create(&thread_id, NULL, call_back, NULL)
> != 0){
> (gdb) n
>
> Program received signal ?, Unknown signal.
> 0x4005b3a4 in ?? ()
> (gdb)
> /%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/
>
>
> On the Target Side, the child thread got created and this is the
> following screen shot
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> ./gdbserver 107.108.3.197:2020 ./threads
> Process ./threads created; pid = 189
> Remote debugging from host 107.108.3.145
> Thread Loop count (1)
> Thread Loop count (2)
> Thread Loop count (3)
> Thread Loop count (4)
> Thread Loop count (5)
> Thread Loop count (6)
> Thread Loop count (7)
> Thread Loop count (8)
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
> Points to be clarified
> ----------------------
> 1. What happened to debug messages from Main thread on the target?
> 2. How to resolve the error messgae "Program received signal ?, Unknown
> signal" came on the Host Side.
>
> Am I missing anything out in this case?
>
>
> Thanks and Regards,
> Balaram.
>
>
>
>
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer