[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