From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8576 invoked by alias); 15 Jul 2005 18:25:41 -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 8556 invoked by uid 22791); 15 Jul 2005 18:25:36 -0000 Received: from web52009.mail.yahoo.com (HELO web52009.mail.yahoo.com) (206.190.48.92) by sourceware.org (qpsmtpd/0.30-dev) with SMTP; Fri, 15 Jul 2005 18:25:36 +0000 Received: (qmail 84907 invoked by uid 60001); 15 Jul 2005 18:25:33 -0000 Message-ID: <20050715182533.84905.qmail@web52009.mail.yahoo.com> Received: from [192.160.144.253] by web52009.mail.yahoo.com via HTTP; Fri, 15 Jul 2005 11:25:33 PDT X-RocketYMMF: natkelcri Date: Fri, 15 Jul 2005 18:25:00 -0000 From: Larry Martell Reply-To: larry@software-horizons.com Subject: gdb runs multi-threaded with non-threaded app and gets SEGV To: gdb@sources.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-SW-Source: 2005-07/txt/msg00181.txt.bz2 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); } 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