bug-ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bugreport: Generic error


From: wiedeman
Subject: Bugreport: Generic error
Date: Fri, 24 Jan 2003 13:33:22 +0100 (MET)

Hello,

i want to report this (really annoying) bug, which is not reproducable, but
happens about 30% of the times i want to track down assertions with ddd. I
start the ddd with a script, that sets a breakpoint to the main program and
starts the program automatically (using the --command switch). This script looks
something like the following:

>#!/bin/sh
>echo "set demangle-style gnu" > .ddd-command
>echo "tty $(tty)" >> .ddd-command
>echo "break main" >> .ddd-command
>echo "run $@ -noSplash" >> .ddd-command
>exec ddd labFramework --command .ddd-command

After that i click on continue and wait for an assertion to fail. After that
has happened, there are two kinds of behaviour.
1. ddd behaves as expected, stops at the point the assertion fails and
allows the user to backtrace. 
2. ddd gives an unusual error message to its gdb console, looking like this:

>GNU DDD 3.3.1 (i386-suse-linux), by Dorothea Lütkehaus and Andreas Zeller.
>Copyright © 1995-1999 Technische Universität Braunschweig, Germany.
>Copyright © 1999-2001 Universität Passau, Germany.
>Breakpoint 1 at 0x804c6bc: file
>/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp, line 29.
>[New Thread 1024 (LWP 20686)]
>[Switching to Thread 1024 (LWP 20686)]
>
>Breakpoint 1, main (argc=4, argv=0xbffff194)
>    at /home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29
>(gdb) cont
>Quit
>(gdb) Kill execution of program being debugged.
>(gdb) Num Type           Disp Enb Address    What
>1   breakpoint     keep y   0x0804c6bc in main at
>/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29
>       breakpoint already hit 1 time
>Cannot find user-level thread for LWP 20686: generic error
>(gdb) (gdb) 

Not enough of that, if i want to quit ddd, nothing happens, but the
following message on gdb console:

>Cannot find thread 1024: generic error
>(gdb) 

i have to kill the process by hand and restart ddd. I want to mention, that
we are using dlopen / dlsym inside of the program to open some plugins and we
are also using threads (pthread).

"ddd --configuration" prints out

>GNU DDD 3.3.1 (i386-suse-linux)
>Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
>Copyright (C) 1999-2001 Universität Passau, Germany.
>
>Compiled with GCC 2.95.3 20010315 (SuSE), GNU libc 2.2
>Requires X11R6, Xt11R6, Motif 2.1.30 (Motif Version 2.1.30)
>Includes XPM 3.4.11, Athena Panner, DDD core
>Built 2002-03-26 by root <address@hidden>.

"gdb --version" prints:

>GNU gdb 5.2.1
>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 "i686-pc-linux-gnu".

and the ~/.ddd/log file is (to the end of this mail):

GNU DDD 3.3.1 (i386-suse-linux)
Copyright (C) 1995-1999 Technische Universität Braunschweig, Germany.
Copyright (C) 1999-2001 Universität Passau, Germany.

Compiled with GCC 2.95.3 20010315 (SuSE), GNU libc 2.2
Requires X11R6, Xt11R6, Motif 2.1.30 (Motif Version 2.1.30)
Includes XPM 3.4.11, Athena Panner, DDD core
Built 2002-03-26 by root <address@hidden>.
$  ddd labFramework --command .ddd-command
+  /bin/sh -c 'exec gdb -q -fullname '\''labFramework'\'' '\''--command'\''
'\''.ddd-command'\'''
#  Hello, world!
#  Opening session "1135105059000104341118400000160160564"...
#  Warning: core dumps are disabled
#  Running GDB (pid 20685, tty /dev/pts/4)...
#  Current language: C/C++
#  Searching "vsllib/ddd.vsl"...
#  Trying "/home/wiedeman/.ddd/vsllib/ddd.vsl"
#  Trying "/usr/share/ddd-3.3.1/vsllib/ddd.vsl"
#  Searching "vsllib/ddd.vsl"..."/usr/share/ddd-3.3.1/vsllib/ddd.vsl".
#  Creating
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/"...
#  Creating
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/"...done.
#  Copying "/home/wiedeman/.ddd/init" to
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/init"...
#  Copying "/home/wiedeman/.ddd/init" to
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/init"...done.
#  Copying "/home/wiedeman/.ddd/history" to
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/history"...
#  Copying "/home/wiedeman/.ddd/history" to
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/history"...done.
#  Saving session in
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/init"...
#  Searching "ddd/Ddd"...
#  Trying "/home/wiedeman/.ddd/ddd/Ddd"
#  Trying "/usr/share/ddd-3.3.1/ddd/Ddd"
#  Searching "ddd/Ddd"..."/usr/share/ddd-3.3.1/ddd/Ddd".
#  Saving session in
"/home/wiedeman/.ddd/sessions/1135105059000104341118400000160160564/init"...done.
<- "Breakpoint 1 at 0x804c6bc: file
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp, line 29.\n"
<- "[New Thread 1024 (LWP 20686)]\n"
<- "[Switching to Thread 1024 (LWP 20686)]\n"
   "\n"
   "Breakpoint 1, main (argc=4, argv=0xbffff194)\n"
   "    at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
  
"\032\032/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29:864:beg:0x804c6bc\n"
<- "(gdb) "
-> "set prompt (gdb) \n"
<- "(gdb) "
-> "set height 0\n"
<- "(gdb) "
-> "set width 0\n"
<- "(gdb) "
-> "set annotate 1\n"
<- "(gdb) "
-> " set verbose off\n"
<- "(gdb) "
-> "info line\n"
<- "Line 29 of
\"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp\" starts at 
address 0x804c6bc <main+12> and ends at 0x804c6c3
<main+19>.\n"
  
"\032\032/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29:864:beg:0x804c6bc\n"
<- "(gdb) "
-> "list\n"
<- "29\t  Defaults *defaults = 0;\n"
   "30\t  try {\n"
   "31\t    QApplication app(argc, argv);\n"
   "32\t\n"
   "33\t    bool demoVersion = false;\n"
   "34\t    bool showSplash = true;\n"
   "35\t    int memCapacity = 100;\n"
   "36\t    int cellBorderWidth = 4;\n"
   "37\t    /*    int maxThreads = 1; */\n"
   "38\t    bool useQTSched = true;\n"
<- "(gdb) "
-> "info line\n"
<- "Line 38 of
\"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp\" starts at 
address 0x804c6f0 <main+64> and ends at 0x804c6f4
<main+68>.\n"
  
"\032\032/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:38:1080:beg:0x804c6f0\n"
   "(gdb) "
-> "output 4711\n"
<- "4711(gdb) "
-> "show language\n"
<- "The current source language is \"auto; currently c++\".\n"
   "(gdb) "
-> "show version\n"
<- "GNU gdb 5.2.1\n"
   "Copyright 2002 Free Software Foundation, Inc.\n"
   "GDB is free software, covered by the GNU General Public License, and you
are\n"
   "welcome to change it and/or distribute copies of it under certain
conditions.\n"
   "Type \"show copying\" to see the conditions.\n"
   "There is absolutely no warranty for GDB.  Type \"show warranty\" for
details.\n"
   "This GDB was configured as \"i686-pc-linux-gnu\".\n"
   "(gdb) "
-> "pwd\n"
<- "Working directory /home/wiedeman/Develop/LabFramework3-Bernd/app.\n"
   "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
-> "show history filename\n"
<- "The filename in which to record the command history is
\"/home/wiedeman/Develop/LabFramework3-Bernd/app/.gdb_history\".\n"
   "(gdb) "
-> "show history size\n"
<- "The size of the command history is 256.\n"
   "(gdb) "
#  Reading file
"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"...
#  Reading file
"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"...done.
#  File "/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"
226 lines, 8315 characters
#  Reading file
"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"...
#  Reading file
"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"...done.
#  File "/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp"
226 lines, 8315 characters
-> "info source\n"
<- "Current source file is
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp\n"
   "Compilation directory is
/home/wiedeman/Develop/LabFramework3-Bernd/obj/gcc_2.95.3-debug-Qt_3.0.5_qtmt-GL/app/\n"
   "Located in
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp\n"
   "Contains 226 lines.\n"
   "Source language is c++.\n"
   "Compiled with stabs debugging format.\n"
   "(gdb) "
-> "info files\n"
<- "Symbols from
\"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework\".\n"
   "Unix child process:\n"
   "\tUsing the running image of child Thread 1024 (LWP 20686).\n"
   "\tWhile running this, GDB does not access memory from...\n"
   "Local exec file:\n"
   "\t`/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework\', file
type elf32-i386.\n"
   "\tEntry point: 0x804c5c0\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x08048758 is .hash\n"
   "\t0x08048758 - 0x080493a8 is .dynsym\n"
   "\t0x080493a8 - 0x0804bcd0 is .dynstr\n"
   "\t0x0804bcd0 - 0x0804be5a is .gnu.version\n"
   "\t0x0804be5c - 0x0804beac is .gnu.version_r\n"
   "\t0x0804beac - 0x0804bedc is .rel.dyn\n"
   "\t0x0804bedc - 0x0804c114 is .rel.plt\n"
   "\t0x0804c114 - 0x0804c139 is .init\n"
   "\t0x0804c13c - 0x0804c5bc is .plt\n"
   "\t0x0804c5c0 - 0x08050f00 is .text\n"
   "\t0x08050f00 - 0x08050f1c is .fini\n"
   "\t0x08050f20 - 0x080517c4 is .rodata\n"
   "\t0x080527e0 - 0x08052868 is .data\n"
   "\t0x08052868 - 0x08054408 is .eh_frame\n"
   "\t0x08054408 - 0x080547d0 is .gcc_except_table\n"
   "\t0x080547d0 - 0x080548f8 is .dynamic\n"
   "\t0x080548f8 - 0x08054900 is .ctors\n"
   "\t0x08054900 - 0x08054908 is .dtors\n"
   "\t0x08054908 - 0x08054a34 is .got\n"
   "\t0x08054a34 - 0x08054ab4 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "\tUsing the running image of child Thread 1024 (LWP 20686).\n"
   "Program stopped at 0x804c6bc.\n"
   "It stopped at breakpoint 1.\n"
   "(gdb) "
-> "set confirm off\n"
<- "(gdb) "
-> "source /tmp/dddZ5HERL\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
-> "# reset\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
   "(gdb) "
-> "display\n"
<- "(gdb) "
-> "info display\n"
<- "There are no auto-display expressions now.\n"
   "(gdb) "
-> "set environment TERM dumb\n"
<- "(gdb) "
-> "info files\n"
<- "Symbols from
\"/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework\".\n"
   "Unix child process:\n"
   "\tUsing the running image of child Thread 1024 (LWP 20686).\n"
   "\tWhile running this, GDB does not access memory from...\n"
   "Local exec file:\n"
   "\t`/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework\', file
type elf32-i386.\n"
   "\tEntry point: 0x804c5c0\n"
   "\t0x080480f4 - 0x08048107 is .interp\n"
   "\t0x08048108 - 0x08048128 is .note.ABI-tag\n"
   "\t0x08048128 - 0x08048758 is .hash\n"
   "\t0x08048758 - 0x080493a8 is .dynsym\n"
   "\t0x080493a8 - 0x0804bcd0 is .dynstr\n"
   "\t0x0804bcd0 - 0x0804be5a is .gnu.version\n"
   "\t0x0804be5c - 0x0804beac is .gnu.version_r\n"
   "\t0x0804beac - 0x0804bedc is .rel.dyn\n"
   "\t0x0804bedc - 0x0804c114 is .rel.plt\n"
   "\t0x0804c114 - 0x0804c139 is .init\n"
   "\t0x0804c13c - 0x0804c5bc is .plt\n"
   "\t0x0804c5c0 - 0x08050f00 is .text\n"
   "\t0x08050f00 - 0x08050f1c is .fini\n"
   "\t0x08050f20 - 0x080517c4 is .rodata\n"
   "\t0x080527e0 - 0x08052868 is .data\n"
   "\t0x08052868 - 0x08054408 is .eh_frame\n"
   "\t0x08054408 - 0x080547d0 is .gcc_except_table\n"
   "\t0x080547d0 - 0x080548f8 is .dynamic\n"
   "\t0x080548f8 - 0x08054900 is .ctors\n"
   "\t0x08054900 - 0x08054908 is .dtors\n"
   "\t0x08054908 - 0x08054a34 is .got\n"
   "\t0x08054a34 - 0x08054ab4 is .bss\n"
   "(gdb) "
-> "info program\n"
<- "\tUsing the running image of child Thread 1024 (LWP 20686).\n"
   "Program stopped at 0x804c6bc.\n"
   "It stopped at breakpoint 1.\n"
   "Type \"info stack\" or \"info registers\" for more information.\n"
   "(gdb) "
#  Opening session "1135105059000104341118400000160160564"...done.
#  Welcome to DDD 3.3.1 "Blue Gnu" (i386-suse-linux)
-> "help detach\n"
<- "Detach a process or file previously attached.\n"
   "If a process, it is no longer traced, and it continues its execution. 
If\n"
   "you were debugging a file, the file is closed and gdb no longer accesses
it.\n"
   "(gdb) "
-> "help run\n"
<- "Start debugged program.  You may specify arguments to give it.\n"
   "Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n"
   "Input and output redirection with \">\", \"<\", or \">>\" are also
allowed.\n"
   "\n"
   "With no arguments, uses arguments last specified (with \"run\" or \"set
args\").\n"
   "To cancel previous arguments and run with no arguments,\n"
   "use \"set args\" without arguments.\n"
   "(gdb) "
-> "help step\n"
<- "Step program until it reaches a different source line.\n"
   "Argument N means do this N times (or till program stops for another
reason).\n"
   "(gdb) "
-> "help stepi\n"
<- "Step one instruction exactly.\n"
   "Argument N means do this N times (or till program stops for another
reason).\n"
   "(gdb) "
-> "help next\n"
<- "Step program, proceeding through subroutine calls.\n"
   "Like the \"step\" command as long as subroutine calls do not happen;\n"
   "when they do, the call is treated as one instruction.\n"
   "Argument N means do this N times (or till program stops for another
reason).\n"
   "(gdb) "
-> "help nexti\n"
<- "Step one instruction, but proceed through subroutine calls.\n"
   "Argument N means do this N times (or till program stops for another
reason).\n"
   "(gdb) "
-> "help until\n"
<- "Execute until the program reaches a source line greater than the
current\n"
   "or a specified line or address or function (same args as break
command).\n"
   "Execution will also stop upon exit from the current stack frame.\n"
   "(gdb) "
-> "help finish\n"
<- "Execute until selected stack frame returns.\n"
   "Upon return, the value returned is printed and put in the value
history.\n"
<- "(gdb) "
-> "help cont\n"
<- "Continue program being debugged, after signal or breakpoint.\n"
   "If proceeding from breakpoint, a number N may be used as an argument,\n"
   "which means to set the ignore count of that breakpoint to N - 1 (so
that\n"
   "the breakpoint won\'t break until the Nth time it is reached).\n"
<- "(gdb) "
-> "help signal\n"
<- "Continue program giving it signal specified by the argument.\n"
   "An argument of \"0\" means continue program without giving it a
signal.\n"
<- "(gdb) "
-> "cont\n"
-> "\003"
#  Cont: waiting until GDB gets ready
<- "\n"
<- "Program received signal SIGABRT, Aborted.\n"
<- "0x4136cab1 in kill () from /lib/libc.so.6\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Quit\n"
<- "(gdb) "
!  Quit
-> "help kill\n"
<- "Num Type           Disp Enb Address    What\n"
<- "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
<- "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "cont\n"
<- "Kill execution of program being debugged.\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Cannot find user-level thread for LWP 20686: generic error"
<- "\n"
<- "(gdb) "
!  Cannot find user-level thread for LWP 20686: generic error
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "help kill\n"
<- "Kill execution of program being debugged.\n"
<- "(gdb) "
-> "help up\n"
<- "Select and print stack frame that called this one.\n"
   "An argument says how many frames up to go.\n"
<- "(gdb) "
-> "help down\n"
<- "Select and print stack frame called by this one.\n"
   "An argument says how many frames down to go.\n"
<- "(gdb) "
#  Deleting session "1135105059000104341118400000160160564"...
#  Current session is [none].
#  Deleting session "1135105059000104341118400000160160564"...done.
-> "quit\n"
<- "Cannot find thread 1024: generic error\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "quit\n"
<- "Cannot find thread 1024: generic error\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "quit\n"
<- "Cannot find thread 1024: generic error\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "quit\n"
<- "Cannot find thread 1024: generic error\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
-> "quit\n"
<- "Cannot find thread 1024: generic error\n"
<- "(gdb) "
-> "info breakpoints\n"
<- "Num Type           Disp Enb Address    What\n"
   "1   breakpoint     keep y   0x0804c6bc in main at
/home/wiedeman/Develop/LabFramework3-Bernd/app/labFramework.cpp:29\n"
   "\tbreakpoint already hit 1 time\n"
<- "(gdb) "
#  Saving history in "/home/wiedeman/.ddd/history"...
#  Saving history in "/home/wiedeman/.ddd/history"...done.
#  Thanks for using DDD 3.3.1!

-- 
+++ GMX - Mail, Messaging & more  http://www.gmx.net +++
NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]