Index: tools/lldb-vscode/JSONUtils.cpp =================================================================== --- tools/lldb-vscode/JSONUtils.cpp +++ tools/lldb-vscode/JSONUtils.cpp @@ -289,7 +289,7 @@ object.try_emplace("verified", true); const auto bp_id = bp_loc.GetBreakpoint().GetID(); - const auto vs_id = (int64_t)(((int64_t)bp_id << 32) | bp_loc.GetID()); + const auto vs_id = (int64_t)(bp_id << 22 | bp_loc.GetID()); object.try_emplace("id", vs_id); auto bp_addr = bp_loc.GetAddress(); if (bp_addr.IsValid()) { Index: tools/lldb-vscode/LLDBUtils.cpp =================================================================== --- tools/lldb-vscode/LLDBUtils.cpp +++ tools/lldb-vscode/LLDBUtils.cpp @@ -66,8 +66,7 @@ } int64_t MakeVSCodeFrameID(lldb::SBFrame &frame) { - return (int64_t)frame.GetThread().GetIndexID() << 32 | - (int64_t)frame.GetFrameID(); + return (int64_t)(frame.GetThread().GetIndexID() << 19 | frame.GetFrameID()); } } // namespace lldb_vscode Index: tools/lldb-vscode/VSCode.cpp =================================================================== --- tools/lldb-vscode/VSCode.cpp +++ tools/lldb-vscode/VSCode.cpp @@ -308,9 +308,9 @@ const uint64_t frame_id = GetUnsigned(arguments, "frameId", UINT64_MAX); lldb::SBProcess process = target.GetProcess(); // Upper 32 bits is the thread index ID - lldb::SBThread thread = process.GetThreadByIndexID(frame_id >> 32); + lldb::SBThread thread = process.GetThreadByIndexID(frame_id >> 19); // Lower 32 bits is the frame index - return thread.GetFrameAtIndex(frame_id & 0xffffffffu); + return thread.GetFrameAtIndex(frame_id & 0x7ffffu); } llvm::json::Value VSCode::CreateTopLevelScopes() {