)]}'
{
  "commit": "dd060bdede8edec18ad5ca122e15cc24a821e3fe",
  "tree": "ab6091e6c0c8781a992e8237d6d7e90131bdef0f",
  "parents": [
    "4baf29e81e30e6ebc1da56b9e5c338014961acf9"
  ],
  "author": {
    "name": "Adrian Vogelsgesang",
    "email": "avogelsgesang@salesforce.com",
    "time": "Tue Aug 27 19:15:42 2024 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 27 19:15:42 2024 +0200"
  },
  "message": "[lldb] Add frame recognizers for libc++ `std::invoke` (#105695)\n\nWith this commit, we also hide the implementation details of\r\n`std::invoke`. To do so, the `LibCXXFrameRecognizer` got a couple more\r\nregular expressions.\r\n\r\nThe regular expression passed into `AddRecognizer` became problematic,\r\nas it was evaluated on the demangled name. Those names also included\r\nresult types for C++ symbols. For `std::__invoke` the return type is a\r\nhuge `decltype(...)`, making the regular expresison really hard to\r\nwrite.\r\n\r\nInstead, I added support to `AddRecognizer` for matching on the\r\ndemangled names without result type and argument types.\r\n\r\nBy hiding the implementation details of `invoke`, also the back traces\r\nfor `std::function` become even nicer, because `std::function` is using\r\n`__invoke` internally.\r\n\r\nCo-authored-by: Adrian Prantl \u003caprantl@apple.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f5c5caa6a45616e2d156118013d4baa67ecb153",
      "old_mode": 33188,
      "old_path": "lldb/include/lldb/Target/StackFrameRecognizer.h",
      "new_id": "617b1617d404a1202f5c3542b232d38f8ffe3d0b",
      "new_mode": 33188,
      "new_path": "lldb/include/lldb/Target/StackFrameRecognizer.h"
    },
    {
      "type": "modify",
      "old_id": "46c75e3dd159c0fb224a8aaa67b7368ab8776ad7",
      "old_mode": 33188,
      "old_path": "lldb/source/Commands/CommandObjectFrame.cpp",
      "new_id": "ef57582a203b39ee11e22333ffc3a821ff527897",
      "new_mode": 33188,
      "new_path": "lldb/source/Commands/CommandObjectFrame.cpp"
    },
    {
      "type": "modify",
      "old_id": "9c4dbed6939ba978dbbf073616d3c2798adb9b3d",
      "old_mode": 33188,
      "old_path": "lldb/source/Commands/Options.td",
      "new_id": "df906e9d7c808fe446cb78a8d0ce49258092829d",
      "new_mode": 33188,
      "new_path": "lldb/source/Commands/Options.td"
    },
    {
      "type": "modify",
      "old_id": "1e4a2cbb1133f73cdfacd117bf5d3c8690025e83",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp",
      "new_id": "faa05e8f834ea199e0398521c8b4c611481c42a8",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp"
    },
    {
      "type": "modify",
      "old_id": "9409497f1c81ba56b3dc87903f7cf345e5509ac9",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp",
      "new_id": "c810ba0c3b171e67d16a7171b6dd246a3d6a4eab",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp"
    },
    {
      "type": "modify",
      "old_id": "d42e31c2aea0a0ce19b0c39e3627c34d044ce980",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/SystemRuntime/MacOSX/AbortWithPayloadFrameRecognizer.cpp",
      "new_id": "fd04db7807a4a07c8e9f659beca7e3b48d544220",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/SystemRuntime/MacOSX/AbortWithPayloadFrameRecognizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "da7c102645c014dc9d26b9b3c519a0fbdacd0160",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/AssertFrameRecognizer.cpp",
      "new_id": "00b1f54023f168278aa47c5bd1b26a3f2b985fcf",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/AssertFrameRecognizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "44411afc65dda912e059f8ebb71bbf2aa3a2a981",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/StackFrameRecognizer.cpp",
      "new_id": "fa24253320a3f29c141eda25ee3e1fe25c69b5d6",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/StackFrameRecognizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "fe72c8aec570d357e3472466637c9ddcfd5961f2",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/VerboseTrapFrameRecognizer.cpp",
      "new_id": "de710fcda54064d41aac0860380da27234998a74",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/VerboseTrapFrameRecognizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "6174ac61a709ddc1d3db188f6c7708e916450c14",
      "old_mode": 33188,
      "old_path": "lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py",
      "new_id": "e25df2b6cdc245d4c70c02bee4908934cf974b13",
      "new_mode": 33188,
      "new_path": "lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py"
    },
    {
      "type": "modify",
      "old_id": "95873405eab84e3a261f22420178ae2db6c5d778",
      "old_mode": 33188,
      "old_path": "lldb/test/API/functionalities/completion/TestCompletion.py",
      "new_id": "bf19a990cf6e304fc69306498e401233d592b8e3",
      "new_mode": 33188,
      "new_path": "lldb/test/API/functionalities/completion/TestCompletion.py"
    },
    {
      "type": "modify",
      "old_id": "8d4b6bfe17166eed19d313f53194c11566211d6a",
      "old_mode": 33188,
      "old_path": "lldb/test/API/lang/cpp/std-function-recognizer/TestStdFunctionRecognizer.py",
      "new_id": "d1cb8214d658ff2d53cf24cd264db11a31b34604",
      "new_mode": 33188,
      "new_path": "lldb/test/API/lang/cpp/std-function-recognizer/TestStdFunctionRecognizer.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "69014eb9c0f2eba432abde175f2d3df02ba2decd",
      "new_mode": 33188,
      "new_path": "lldb/test/API/lang/cpp/std-invoke-recognizer/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbe29610bf79823b84328f3638c8689f6face51a",
      "new_mode": 33188,
      "new_path": "lldb/test/API/lang/cpp/std-invoke-recognizer/TestStdInvokeRecognizer.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bafbbd28386e8bfb1b78bea7a657cb889c2093a0",
      "new_mode": 33188,
      "new_path": "lldb/test/API/lang/cpp/std-invoke-recognizer/main.cpp"
    },
    {
      "type": "modify",
      "old_id": "695f091227d6a0515b0f31df7087b9219e09980b",
      "old_mode": 33188,
      "old_path": "lldb/unittests/Target/StackFrameRecognizerTest.cpp",
      "new_id": "df4458e3138c49dcf26ce681083b92939d94beb9",
      "new_mode": 33188,
      "new_path": "lldb/unittests/Target/StackFrameRecognizerTest.cpp"
    }
  ]
}
