Public bug reported: I wrote a simple C++ application that links with TBB::tbbmalloc. I have defined a class called TBBAllocator that implements the std::allocator archetype, and that calls TBB's scalable_malloc and scalable_free to deal with memory allocations. Then I have instantiated a std::string<char, char_traits<char>, TBBAllocator>> local variable named 'str', initialized it with "Hello World", and output it through cout. Given you build the executable with debug information, if you put a breakpoint on the "cout << str" line and break in gdb, and try to print the string's value with the command "p str", GDB crashes on a "floating point exception", but that is really a division by 0 happening in a function named "val_print_string" in GDB.
If I download GDB 12.1 source code and build it manually, it fixes the issue. The "p str" command completes successfully and prints all the fields of the std::string. If I install GDB from sources using apt, the crash remains, and it is possible to launch GDB on a second instance of GDB which then debugs the sample program. # lsb_release -rd Description: Ubuntu 22.04.5 LTS Release: 22.04 # apt-cache policy gdb gdb: Installed: 12.1-0ubuntu1~22.04.2 Candidate: 12.1-0ubuntu1~22.04.2 Version table: *** 12.1-0ubuntu1~22.04.2 500 500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages 100 /var/lib/dpkg/status 12.0.90-0ubuntu1 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages # apt-cache policy gcc gcc: Installed: 4:11.2.0-1ubuntu1 Candidate: 4:11.2.0-1ubuntu1 Version table: *** 4:11.2.0-1ubuntu1 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbb12 libtbb12: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbbmalloc2 libtbbmalloc2: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbb-dev libtbb-dev: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status ProblemType: Bug DistroRelease: Ubuntu 22.04 Package: gdb 12.1-0ubuntu1~22.04.2 ProcVersionSignature: Ubuntu 5.15.0-126.136-generic 5.15.167 Uname: Linux 5.15.0-126-generic x86_64 ApportVersion: 2.20.11-0ubuntu82.6 Architecture: amd64 CasperMD5CheckResult: unknown Date: Tue Nov 26 15:42:56 2024 ProcEnviron: TERM=xterm LD_LIBRARY_PATH=<set> PATH=(custom, user) RebootRequiredPkgs: Error: path contained symlinks. SourcePackage: gdb UpgradeStatus: No upgrade log present (probably fresh install) ** Affects: gdb (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug jammy ** Attachment added: "gdbtestcrash.cpp" https://bugs.launchpad.net/bugs/2089693/+attachment/5840595/+files/gdbtestcrash.cpp -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to gdb in Ubuntu. https://bugs.launchpad.net/bugs/2089693 Title: Division by 0 in GDB when printing std::string with custom TBB memory allocator Status in gdb package in Ubuntu: New Bug description: I wrote a simple C++ application that links with TBB::tbbmalloc. I have defined a class called TBBAllocator that implements the std::allocator archetype, and that calls TBB's scalable_malloc and scalable_free to deal with memory allocations. Then I have instantiated a std::string<char, char_traits<char>, TBBAllocator>> local variable named 'str', initialized it with "Hello World", and output it through cout. Given you build the executable with debug information, if you put a breakpoint on the "cout << str" line and break in gdb, and try to print the string's value with the command "p str", GDB crashes on a "floating point exception", but that is really a division by 0 happening in a function named "val_print_string" in GDB. If I download GDB 12.1 source code and build it manually, it fixes the issue. The "p str" command completes successfully and prints all the fields of the std::string. If I install GDB from sources using apt, the crash remains, and it is possible to launch GDB on a second instance of GDB which then debugs the sample program. # lsb_release -rd Description: Ubuntu 22.04.5 LTS Release: 22.04 # apt-cache policy gdb gdb: Installed: 12.1-0ubuntu1~22.04.2 Candidate: 12.1-0ubuntu1~22.04.2 Version table: *** 12.1-0ubuntu1~22.04.2 500 500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages 100 /var/lib/dpkg/status 12.0.90-0ubuntu1 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages # apt-cache policy gcc gcc: Installed: 4:11.2.0-1ubuntu1 Candidate: 4:11.2.0-1ubuntu1 Version table: *** 4:11.2.0-1ubuntu1 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbb12 libtbb12: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbbmalloc2 libtbbmalloc2: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy libtbb-dev libtbb-dev: Installed: 2021.5.0-7ubuntu2 Candidate: 2021.5.0-7ubuntu2 Version table: *** 2021.5.0-7ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages 100 /var/lib/dpkg/status ProblemType: Bug DistroRelease: Ubuntu 22.04 Package: gdb 12.1-0ubuntu1~22.04.2 ProcVersionSignature: Ubuntu 5.15.0-126.136-generic 5.15.167 Uname: Linux 5.15.0-126-generic x86_64 ApportVersion: 2.20.11-0ubuntu82.6 Architecture: amd64 CasperMD5CheckResult: unknown Date: Tue Nov 26 15:42:56 2024 ProcEnviron: TERM=xterm LD_LIBRARY_PATH=<set> PATH=(custom, user) RebootRequiredPkgs: Error: path contained symlinks. SourcePackage: gdb UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/2089693/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp