[Bug 857541] New: after upgrade to 13.1 debugging with gdb (qt creator) is broken: backtrace.py missing
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c0 Summary: after upgrade to 13.1 debugging with gdb (qt creator) is broken: backtrace.py missing Classification: openSUSE Product: openSUSE 13.1 Version: Final Platform: x86-64 OS/Version: openSUSE 13.1 Status: NEW Severity: Major Priority: P5 - None Component: Development AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: saloution@googlemail.com QAContact: qa-bugs@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 Today I ran the distribution upgrade from 64bit 12.3 to 13.1. Unfortunately debugging in my favourite envirenoment Qt Creator with gdb is broken since then. The debugger cannot resolve complex types anymore, e.g.: typedef std::array<lool,2> loolarray; I discussed this problem with the guys in #qt-creator, and it doesn't seem related to qt creator, but to gdb. error log of gdb from qt creator: http://pastebin.kde.org/pjcg5vri3#line-338 minimal example: http://pastie.org/8606621 There is another bug report which might be related: https://bugzilla.redhat.com/show_bug.cgi?id=972351 Reproducible: Always Steps to Reproduce: 1. setup the 2 files from the minimal example 2. open the pro-file in qt-creator 3. click debug 4. try to see the attributes of the std::array type Actual Results: gdb reports <not resolvable> Expected Results: gdb shows the single child nodes in std::array This was working flawlessly in opensuse 12.3 64 bit. There, gdb was in version 7.5.1. and a backtrace.py was still part of it. As gdb is a quite important app, I decided that this bug is a major one for me. :) Feel free to vote it down. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c1 --- Comment #1 from Robert Riemann <saloution@googlemail.com> 2014-01-06 15:27:05 UTC --- I tried to use KDevelop instead and there I also can see only "{...}" instead of the content of the std::array. I tried it with std::vector in Qt Creator either, but it doesn't change anything. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c Xiyuan Liu <xyliu@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xyliu@suse.com AssignedTo|bnc-team-screening@forge.pr |rguenther@suse.com |ovo.novell.com | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c2 --- Comment #2 from Richard Biener <rguenther@suse.com> 2014-01-07 09:31:20 UTC --- The error log points at the same issue as the fedora bugzilla - which is a bug in glib which fails to support the refactored python support in newer gdb. The minimal example cannot trigger the same issue as it doesn't link to glib (?). So what is the error log for the minimal example? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c3 --- Comment #3 from Robert Riemann <saloution@googlemail.com> 2014-01-07 10:24:40 UTC --- In short, the pretty printers in Qt Creator for std::array and std::unique_ptr stopped working. I spent a couple of hours yesterday to get it working again. I disabled in the Qt Creator settings of gdb the loading of system pretty printers and helped a guy in #qt-creator to patch the pretty printer integrated in Qt Creator itself [1]. Now it works again, but only as long as I don't load the system pretty printers. I'm not entirely sure at which compontent it got broken. However, for me it is a regression. It worked very nicely in opensuse 12.3 I extended the minimal example a little bit: http://paste.opensuse.org/87289252 In #kdevelop I got told, that kdevelop only relies on the system pretty printers. There, std::array works, but not std::unique_ptr. I don't know, if this worked before in opensuse 12.3 as I did not use kdevelop. [1]: https://codereview.qt-project.org/74763 https://codereview.qt-project.org/74765 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c4 --- Comment #4 from Richard Biener <rguenther@suse.com> 2014-01-07 10:39:01 UTC --- The extended example on 13.1, compiled with just -g does rguenther@murzim:~> gdb ./a.out GNU gdb (GDB; devel:gcc) 7.6.50.20130731-cvs Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-suse-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://bugs.opensuse.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". . Reading symbols from /suse/rguenther/a.out...done. (gdb) start .. (gdb) 31 blub.push_back(lool(1)); (gdb) p blub $1 = std::vector of length 1, capacity 1 = {{my_i = false}} (gdb) n 33 std::unique_ptr<lool> unique_lool(new lool(0)); (gdb) 34 cout << "unique lool: " << unique_lool->my_i << std::endl; (gdb) p unique_lool $2 = std::unique_ptr<lool> containing 0x605010 so it seems to work for me. Note that the libstdc++ pretty printers are contained in the libstdc++48-devel package, mine is libstdc++48-devel-4.8.2+r205850-74.1.x86_64 can you check if it works for you with using gdb from the command-line as well? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c5 --- Comment #5 from Robert Riemann <saloution@googlemail.com> 2014-01-07 13:10:08 UTC --- (In reply to comment #4)
The extended example on 13.1, compiled with just -g does
rguenther@murzim:~> gdb ./a.out GNU gdb (GDB; devel:gcc) 7.6.50.20130731-cvs Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-suse-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://bugs.opensuse.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". .. Reading symbols from /suse/rguenther/a.out...done. (gdb) start ... (gdb) 31 blub.push_back(lool(1)); (gdb) p blub $1 = std::vector of length 1, capacity 1 = {{my_i = false}} (gdb) n 33 std::unique_ptr<lool> unique_lool(new lool(0)); (gdb) 34 cout << "unique lool: " << unique_lool->my_i << std::endl; (gdb) p unique_lool $2 = std::unique_ptr<lool> containing 0x605010
so it seems to work for me. Note that the libstdc++ pretty printers are contained in the libstdc++48-devel package, mine is
libstdc++48-devel-4.8.2+r205850-74.1.x86_64
can you check if it works for you with using gdb from the command-line as well?
I can confirm your gdb session. I got the same result. So std::array and std::vector seems to work with pure gdb, but not std::unique_ptr. I expected to not only get the memory address, but the content of the object lool that the pointer is pointing to. Something like: $2 = std::unique_ptr to lool = {my_i = 0} However, I will report an qt creator bug concerning the buggy setup of system gdb pretty printers. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c6 --- Comment #6 from Richard Biener <rguenther@suse.com> 2014-01-07 13:18:34 UTC --- (In reply to comment #5)
(In reply to comment #4)
The extended example on 13.1, compiled with just -g does
rguenther@murzim:~> gdb ./a.out GNU gdb (GDB; devel:gcc) 7.6.50.20130731-cvs Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-suse-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://bugs.opensuse.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". .. Reading symbols from /suse/rguenther/a.out...done. (gdb) start ... (gdb) 31 blub.push_back(lool(1)); (gdb) p blub $1 = std::vector of length 1, capacity 1 = {{my_i = false}} (gdb) n 33 std::unique_ptr<lool> unique_lool(new lool(0)); (gdb) 34 cout << "unique lool: " << unique_lool->my_i << std::endl; (gdb) p unique_lool $2 = std::unique_ptr<lool> containing 0x605010
so it seems to work for me. Note that the libstdc++ pretty printers are contained in the libstdc++48-devel package, mine is
libstdc++48-devel-4.8.2+r205850-74.1.x86_64
can you check if it works for you with using gdb from the command-line as well?
I can confirm your gdb session. I got the same result. So std::array and std::vector seems to work with pure gdb, but not std::unique_ptr.
I expected to not only get the memory address, but the content of the object lool that the pointer is pointing to. Something like: $2 = std::unique_ptr to lool = {my_i = 0}
Certainly a weakness. I'd have expected (gdb) p *unique_lool to work, but it doesn't :/ -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c7 --- Comment #7 from Robert Riemann <saloution@googlemail.com> 2014-01-07 13:25:23 UTC --- p *unique_lool.get() gives: $16 = {my_i = false} -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=857541 https://bugzilla.novell.com/show_bug.cgi?id=857541#c8 Richard Biener <rguenther@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cshorler@googlemail.com --- Comment #8 from Richard Biener <rguenther@suse.com> 2014-05-26 11:40:04 UTC --- *** Bug 873336 has been marked as a duplicate of this bug. *** http://bugzilla.novell.com/show_bug.cgi?id=873336 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=857541 http://bugzilla.novell.com/show_bug.cgi?id=857541#c9 Richard Biener <rguenther@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #9 from Richard Biener <rguenther@suse.com> --- backtrace.py stuff solved, not a gdb bug. -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com