From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16885 invoked by alias); 15 Jul 2005 19:51:38 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 16875 invoked by uid 22791); 15 Jul 2005 19:51:35 -0000 Received: from 203.197.88.2.ill-pune.static.vsnl.net.in (HELO marvin.codito.net) (203.197.88.2) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Fri, 15 Jul 2005 19:51:35 +0000 Received: from [220.224.55.142] ([220.224.55.142]) (authenticated bits=0) by marvin.codito.net (8.13.4/8.13.4/Debian-3) with ESMTP id j6FJjkBp006617; Sat, 16 Jul 2005 01:15:59 +0530 Subject: Re: gdb runs multi-threaded with non-threaded app and gets SEGV From: Ramana Radhakrishnan Reply-To: ramana.radhakrishnan@codito.com To: larry@software-horizons.com Cc: gdb@sources.redhat.com In-Reply-To: <20050715182533.84905.qmail@web52009.mail.yahoo.com> References: <20050715182533.84905.qmail@web52009.mail.yahoo.com> Content-Type: text/plain Date: Fri, 15 Jul 2005 19:51:00 -0000 Message-Id: <1121456545.7681.5.camel@localhost.localdomain> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Virus-Status: Clean X-SW-Source: 2005-07/txt/msg00182.txt.bz2 On Fri, 2005-07-15 at 11:25 -0700, Larry Martell wrote: > I have a program that has 1 line of code - a call to > a third party libary function: > > #include "ni488.h" > > int main() { > int handle = ibdev(0, 7, 0, 10, 1, 0); > } That is not enough info for us to help you with . Try CVS head or a more recent version of gdb and see if that works. Whats the version of libc , gcc that you are building your app with ? Also maybe your 3rd party library might be multithreaded for all we know. Do a ldd on the library if its a .so and check . cheers Ramana > > The program is not multi-threaded nor does not link > with any multi-threaded libs. It's built like this: > > gcc -g -o nitest nitest.c -lgpibapi > > If I run the program outside of the debugger it does > not crash. > > If I run it from within gdb here's what I get: > > $ gdb nitest > GNU gdb 6.2-2mdk (Mandrakelinux) > Copyright 2004 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 > "i586-mandrake-linux-gnu"...Using host libthread_db > library "/lib/tls/libthread_db.so.1". > > (gdb) start > Breakpoint 1 at 0x8048398: file nitest.c, line 4. > Starting program: /home/martell/src/nitest2/nitest > [Thread debugging using libthread_db enabled] > [New Thread 1076484320 (LWP 9873)] > [Switching to Thread 1076484320 (LWP 9873)] > main () at nitest.c:4 > 4 int handle = ibdev(0, 7, 0, 10, 1, 0); > (gdb) c > Continuing. > [New Thread 1085078448 (LWP 9876)] > [New Thread 1093471152 (LWP 9877)] > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 1085078448 (LWP 9876)] > 0x4005d609 in ?? () from > /usr/local/lib/libgpibapi.so.2 > > Can anyone tell me why gdb runs this as multi-threaded > and why I get a SEGV in gdb, but I do not when I run > it outside of gdb? > > Thanks! > -larry