GDB pretty printers not working for absl hash maps

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Server Programmability
    • ALL
    • Programmability 2025-05-12, Programmability 2025-05-26, Programmability 2025-06-09
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None

      1. build with the dbg profile

      bazel build --config=dbg install-dist-test 

      2. run gdb

      /opt/mongodbtoolchain/v5/bin/gdb bazel-bin/install/bin/mongod

      3. add a breakpoint in some function that takes an expCtx as a parameter, e.g.

      (gdb) b src/mongo/db/commands/query_cmd/run_aggregate.cpp:890

      4. run the server from gdb

      (gdb) r

      5. run the mongo shell in another terminal

      bazel-bin/install/bin/mongo

      6. run an aggregation that will hit the breakpoint, e.g.

      MongoDB Enterprise > db.test.aggregate([{$limit: 10}]);

      7. go into the thread with that is executing the query

      (gdb) t 55 

      8. try to print the ResolvedNamespaceMap

      (gdb) p expCtx->_params.resolvedNamespaces 

      this should fail with the following error

      and then trying to print a ResolvedNamespaceMap fails with the following error:

      $1 = Traceback (most recent call last):
        File "buildscripts/gdb/mongo_printers.py", line 579, in absl_get_settings
          common_fields_storage_type = gdb.lookup_type(
      gdb.error: No type named absl::lts_20230802::container_internal::internal_compressed_tuple::Storage<absl::lts_20230802::container_internal::CommonFields, 0, false>.During handling of the above exception, another exception occurred:Traceback (most recent call last):
        File "buildscripts/gdb/mongo_printers.py", line 702, in to_string
          absl_container_size(absl_get_settings(self.val)),
        File "buildscripts/gdb/mongo_printers.py", line 592, in absl_get_settings
          common_fields_storage_type = gdb.lookup_type(
      gdb.error: No type named absl::lts_20230802::container_internal::internal_compressed_tuple::Storage<absl::container_internal::CommonFields, 0, false>.

       

       

            Assignee:
            Alex Li
            Reporter:
            Mariano Shaar
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: