** Summary changed:

- Division by 0 in GDB when printing std::string with custom TBB memory 
allocator
+ Division by 0 in GDB when printing std::string with custom memory allocator

-- 
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 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

Reply via email to