[all-commits] [llvm/llvm-project] ca8493: Fix lldb-vscode frame id integer overflow

jeffreytan81 via All-commits all-commits at lists.llvm.org
Wed Jul 26 16:12:59 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ca849352936dadadd232cf9ec74ac006ce410f51
      https://github.com/llvm/llvm-project/commit/ca849352936dadadd232cf9ec74ac006ce410f51
  Author: Jeffrey Tan <jeffreytan at fb.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M lldb/tools/lldb-vscode/LLDBUtils.cpp

  Log Message:
  -----------
  Fix lldb-vscode frame id integer overflow

This patch fixes a 32bit integer overflow in lldb-vscode.
The current implementation of frame_id does `(thread_index << 19 | frame_index)`. Since thread_index is a 32 bit integer this leaves only 32 - 19 == 13 bits available for the thread_index. As a result, lldb-vscode can only handle 2^13 == 8192 threads. Normally, this would be sufficient, but we have seen crazy process having +12000 threads, causing the frame_id algorithm above to integer overflow during casting.

The patch fixes the overflow by up casting to 64 bit integer first before bit shifiting.

Differential Revision: https://reviews.llvm.org/D156375




More information about the All-commits mailing list