[Lldb-commits] [lldb] [lldb] Fix inappropriate uses of LLDB_INVALID_IMAGE_TOKEN (PR #193365)

Sergei Barannikov via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 21 17:53:08 PDT 2026


https://github.com/s-barannikov updated https://github.com/llvm/llvm-project/pull/193365

>From 70c9ae2e8ff15237b3452973c55eb76016aea3b3 Mon Sep 17 00:00:00 2001
From: Sergei Barannikov <barannikov88 at gmail.com>
Date: Wed, 22 Apr 2026 03:36:07 +0300
Subject: [PATCH 1/2] [lldb] Fix inappropriate uses of LLDB_INVALID_IMAGE_TOKEN

It may not be obvious from its name, but `Process::m_image_tokens`
contains loaded image addresses, not "tokens". The tokens are actually
indices into that array.
---
 lldb/source/Commands/CommandObjectProcess.cpp            | 2 +-
 lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp     | 2 +-
 lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp | 2 +-
 lldb/source/Target/Process.cpp                           | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index 183163f21ac90..0ac1fd0d5cef4 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -1102,7 +1102,7 @@ class CommandObjectProcessUnload : public CommandObjectParsed {
     const std::vector<lldb::addr_t> &tokens = process->GetImageTokens();
     const size_t token_num = tokens.size();
     for (size_t i = 0; i < token_num; ++i) {
-      if (tokens[i] == LLDB_INVALID_IMAGE_TOKEN)
+      if (tokens[i] == LLDB_INVALID_ADDRESS)
         continue;
       request.TryCompleteCurrentArg(std::to_string(i));
     }
diff --git a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
index fdc52d29d2a33..b301890d2b698 100644
--- a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
+++ b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
@@ -962,7 +962,7 @@ uint32_t PlatformPOSIX::DoLoadImage(lldb_private::Process *process,
 Status PlatformPOSIX::UnloadImage(lldb_private::Process *process,
                                   uint32_t image_token) {
   const addr_t image_addr = process->GetImagePtrFromToken(image_token);
-  if (image_addr == LLDB_INVALID_IMAGE_TOKEN)
+  if (image_addr == LLDB_INVALID_ADDRESS)
     return Status::FromErrorString("Invalid image token");
 
   StreamString expr;
diff --git a/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp b/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
index 1bc9d3fb9978d..9e11b66068381 100644
--- a/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
+++ b/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
@@ -430,7 +430,7 @@ uint32_t PlatformWindows::DoLoadImage(Process *process,
 
 Status PlatformWindows::UnloadImage(Process *process, uint32_t image_token) {
   const addr_t address = process->GetImagePtrFromToken(image_token);
-  if (address == LLDB_INVALID_IMAGE_TOKEN)
+  if (address == LLDB_INVALID_ADDRESS)
     return Status::FromErrorString("invalid image token");
 
   StreamString expression;
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 34e15e19b82bd..53b3b480ad4d2 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -6354,12 +6354,12 @@ size_t Process::AddImageToken(lldb::addr_t image_ptr) {
 lldb::addr_t Process::GetImagePtrFromToken(size_t token) const {
   if (token < m_image_tokens.size())
     return m_image_tokens[token];
-  return LLDB_INVALID_IMAGE_TOKEN;
+  return LLDB_INVALID_ADDRESS;
 }
 
 void Process::ResetImageToken(size_t token) {
   if (token < m_image_tokens.size())
-    m_image_tokens[token] = LLDB_INVALID_IMAGE_TOKEN;
+    m_image_tokens[token] = LLDB_INVALID_ADDRESS;
 }
 
 Address

>From 3252b0116596ab8ee87a17dc4276d337d41a166a Mon Sep 17 00:00:00 2001
From: Sergei Barannikov <barannikov88 at gmail.com>
Date: Wed, 22 Apr 2026 03:52:54 +0300
Subject: [PATCH 2/2] Rename tokens -> image_addrs

---
 lldb/source/Commands/CommandObjectProcess.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index 0ac1fd0d5cef4..edab6caf47860 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -1099,10 +1099,10 @@ class CommandObjectProcessUnload : public CommandObjectParsed {
 
     Process *process = m_exe_ctx.GetProcessPtr();
 
-    const std::vector<lldb::addr_t> &tokens = process->GetImageTokens();
-    const size_t token_num = tokens.size();
+    const std::vector<addr_t> &image_addrs = process->GetImageTokens();
+    const size_t token_num = image_addrs.size();
     for (size_t i = 0; i < token_num; ++i) {
-      if (tokens[i] == LLDB_INVALID_ADDRESS)
+      if (image_addrs[i] == LLDB_INVALID_ADDRESS)
         continue;
       request.TryCompleteCurrentArg(std::to_string(i));
     }



More information about the lldb-commits mailing list