https://github.com/barsolo2000 updated https://github.com/llvm/llvm-project/pull/149903
>From e9fdc0a001823db1df26158845301aec94cd2b8a Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 13:29:58 -0700 Subject: [PATCH 1/7] added documenatation on GetDescription --- .../interface/SBMemoryRegionInfoDocstrings.i | 52 ++++++++++++------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index d7c68baf100e2..dd578f53c828c 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -1,31 +1,43 @@ -%feature("docstring", -"API clients can get information about memory regions in processes." -) lldb::SBMemoryRegionInfo; +% feature("docstring", + "API clients can get information about memory regions in processes.") + lldb::SBMemoryRegionInfo; %feature("docstring", " Returns whether this memory region has a list of modified (dirty) pages available or not. When calling GetNumDirtyPages(), you will - have 0 returned for both \"dirty page list is not known\" and + have 0 returned for both \"dirty page list is not known\" and \"empty dirty page list\" (that is, no modified pages in this memory region). You must use this method to disambiguate." ) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; -%feature("docstring", " - Return the number of dirty (modified) memory pages in this - memory region, if available. You must use the - SBMemoryRegionInfo::HasDirtyMemoryPageList() method to - determine if a dirty memory list is available; it will depend - on the target system can provide this information." -) lldb::SBMemoryRegionInfo::GetNumDirtyPages; +% feature( + "docstring", + " + Return the number of dirty(modified) memory pages in this memory region, + if available.You must use the SBMemoryRegionInfo::HasDirtyMemoryPageList() + method to determine if a dirty memory list is available; + it will depend on the target system can provide this information." + ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; -%feature("docstring", " - Return the address of a modified, or dirty, page of memory. - If the provided index is out of range, or this memory region - does not have dirty page information, LLDB_INVALID_ADDRESS - is returned." -) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; +% feature("docstring", + " + Return the address of a modified, + or dirty, page of memory.If the provided index is out of range, + or this memory region does not have dirty page information, + LLDB_INVALID_ADDRESS is returned." + ) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; + +% feature("docstring", " + Return the size of pages in this memory region .0 will be + returned if this information was unavailable." + ) lldb::SBMemoryRegionInfo::GetPageSize(); %feature("docstring", " - Return the size of pages in this memory region. 0 will be returned - if this information was unavailable." -) lldb::SBMemoryRegionInfo::GetPageSize(); + takes a SBStream parameter 'description' where it will write the output to. + it formats the memory region information into a string with Memory region info + [Hex start - Hex End) and premission flags R/W/X + returns a boolean value indicating success or failure + + alternative to using this method to find out the size of the memory region + is to use the len() function on the SBMemoryRegionInfo object" +) lldb::SBMemoryRegionInfo::GetDescription; >From 17f46d31903ab451a5944d4097ae1ef62bd631cc Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 14:08:01 -0700 Subject: [PATCH 2/7] added doc on str/len overwritten functions --- .../interface/SBMemoryRegionInfoDocstrings.i | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index dd578f53c828c..6b7f4a32ed17e 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -1,5 +1,8 @@ % feature("docstring", - "API clients can get information about memory regions in processes.") + "API clients can get information about memory regions in processes. + + When printed using str(), the memory region info is formatted as: + '[Hex start - Hex End] RWX' ") lldb::SBMemoryRegionInfo; %feature("docstring", " @@ -34,10 +37,11 @@ %feature("docstring", " takes a SBStream parameter 'description' where it will write the output to. - it formats the memory region information into a string with Memory region info - [Hex start - Hex End) and premission flags R/W/X - returns a boolean value indicating success or failure + The function will formats the memory region information into a string with Memory region info + [Hex start - Hex End) and premission flags R/W/X. + Returns a boolean value indicating success or failure. - alternative to using this method to find out the size of the memory region - is to use the len() function on the SBMemoryRegionInfo object" + alternatively, to get the size of the memory region is to use + the len() function on the SBMemoryRegionInfo object. + The function function will return the size of the memory region" ) lldb::SBMemoryRegionInfo::GetDescription; >From 248082579858ea58235d2946d27e9f25e879e05f Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 14:48:24 -0700 Subject: [PATCH 3/7] fixed comments from previous commit --- .../interface/SBMemoryRegionInfoDocstrings.i | 64 +++++++++---------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index 6b7f4a32ed17e..1bb1433e2046d 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -1,9 +1,8 @@ -% feature("docstring", - "API clients can get information about memory regions in processes. +%feature("docstring", + "API clients can get information about memory regions in processes. - When printed using str(), the memory region info is formatted as: - '[Hex start - Hex End] RWX' ") - lldb::SBMemoryRegionInfo; + For Python users, `len()` is overriden to output the size of the memory region in bytes." + ) lldb::SBMemoryRegionInfo; %feature("docstring", " Returns whether this memory region has a list of modified (dirty) @@ -11,37 +10,36 @@ have 0 returned for both \"dirty page list is not known\" and \"empty dirty page list\" (that is, no modified pages in this memory region). You must use this method to disambiguate." -) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; + ) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; -% feature( - "docstring", - " - Return the number of dirty(modified) memory pages in this memory region, - if available.You must use the SBMemoryRegionInfo::HasDirtyMemoryPageList() - method to determine if a dirty memory list is available; - it will depend on the target system can provide this information." - ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; +%feature( + "docstring", + " + Return the number of dirty(modified) memory pages in this memory region, + if available.You must use the SBMemoryRegionInfo::HasDirtyMemoryPageList() + method to determine if a dirty memory list is available; + it will depend on the target system can provide this information." + ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; -% feature("docstring", - " - Return the address of a modified, - or dirty, page of memory.If the provided index is out of range, - or this memory region does not have dirty page information, - LLDB_INVALID_ADDRESS is returned." - ) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; +%feature("docstring", + " + Return the address of a modified, + or dirty, page of memory.If the provided index is out of range, + or this memory region does not have dirty page information, + LLDB_INVALID_ADDRESS is returned." + ) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; -% feature("docstring", " - Return the size of pages in this memory region .0 will be - returned if this information was unavailable." - ) lldb::SBMemoryRegionInfo::GetPageSize(); +%feature("docstring", " + Return the size of pages in this memory region .0 will be + returned if this information was unavailable." + ) lldb::SBMemoryRegionInfo::GetPageSize; %feature("docstring", " - takes a SBStream parameter 'description' where it will write the output to. - The function will formats the memory region information into a string with Memory region info - [Hex start - Hex End) and premission flags R/W/X. - Returns a boolean value indicating success or failure. + Takes an SBStream parameter to write output to, + formatted [Hex start - Hex End) with associated permissions (RWX). + If the function results false, no output will be written. + If results true, the output will be written to the stream. - alternatively, to get the size of the memory region is to use - the len() function on the SBMemoryRegionInfo object. - The function function will return the size of the memory region" -) lldb::SBMemoryRegionInfo::GetDescription; + For Python users, `str()` is overriden with the results of this function. + " + ) lldb::SBMemoryRegionInfo::GetDescription; >From 770547ed2bc6b32d831c0b2477325e91d2e8bf50 Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 14:56:00 -0700 Subject: [PATCH 4/7] format change --- .../interface/SBMemoryRegionInfoDocstrings.i | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index 1bb1433e2046d..805032725ed6e 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -2,7 +2,7 @@ "API clients can get information about memory regions in processes. For Python users, `len()` is overriden to output the size of the memory region in bytes." - ) lldb::SBMemoryRegionInfo; +) lldb::SBMemoryRegionInfo; %feature("docstring", " Returns whether this memory region has a list of modified (dirty) @@ -10,7 +10,7 @@ have 0 returned for both \"dirty page list is not known\" and \"empty dirty page list\" (that is, no modified pages in this memory region). You must use this method to disambiguate." - ) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; +) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; %feature( "docstring", @@ -19,7 +19,7 @@ if available.You must use the SBMemoryRegionInfo::HasDirtyMemoryPageList() method to determine if a dirty memory list is available; it will depend on the target system can provide this information." - ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; +) lldb::SBMemoryRegionInfo::GetNumDirtyPages; %feature("docstring", " @@ -27,12 +27,12 @@ or dirty, page of memory.If the provided index is out of range, or this memory region does not have dirty page information, LLDB_INVALID_ADDRESS is returned." - ) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; +) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; %feature("docstring", " Return the size of pages in this memory region .0 will be returned if this information was unavailable." - ) lldb::SBMemoryRegionInfo::GetPageSize; +) lldb::SBMemoryRegionInfo::GetPageSize; %feature("docstring", " Takes an SBStream parameter to write output to, @@ -42,4 +42,4 @@ For Python users, `str()` is overriden with the results of this function. " - ) lldb::SBMemoryRegionInfo::GetDescription; +) lldb::SBMemoryRegionInfo::GetDescription; >From ef0687ddd73fd8246a706b1f6050ccf45221069c Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 15:29:36 -0700 Subject: [PATCH 5/7] added doxygen comments --- lldb/include/lldb/API/SBMemoryRegionInfo.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lldb/include/lldb/API/SBMemoryRegionInfo.h b/lldb/include/lldb/API/SBMemoryRegionInfo.h index f9a5dc993d7cb..7033921b10770 100644 --- a/lldb/include/lldb/API/SBMemoryRegionInfo.h +++ b/lldb/include/lldb/API/SBMemoryRegionInfo.h @@ -115,6 +115,19 @@ class LLDB_API SBMemoryRegionInfo { bool operator!=(const lldb::SBMemoryRegionInfo &rhs) const; + /// writes a description of the memory region to a SBStream. + /// + /// \param[in,out] description + /// A stream object where the description will be written. + /// + /// \return + /// Returns true if the description was successfully written, + /// false otherwise. + /// + /// The description format is: [Hex start - Hex End) with associated permissions (RWX) + /// + /// In Python bindings, this method is used by the __str__ implementation, + /// allowing memory regions to be printed directly. bool GetDescription(lldb::SBStream &description); private: >From c68d9dcb84723a6e5a6a5a127fa6a578537e4b03 Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 15:38:11 -0700 Subject: [PATCH 6/7] fixed formatting auto-save changes --- .../interface/SBMemoryRegionInfoDocstrings.i | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index 805032725ed6e..187f005496320 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -7,22 +7,20 @@ %feature("docstring", " Returns whether this memory region has a list of modified (dirty) pages available or not. When calling GetNumDirtyPages(), you will - have 0 returned for both \"dirty page list is not known\" and + have 0 returned for both \"dirty page list is not known\" and \"empty dirty page list\" (that is, no modified pages in this memory region). You must use this method to disambiguate." ) lldb::SBMemoryRegionInfo::HasDirtyMemoryPageList; -%feature( - "docstring", - " - Return the number of dirty(modified) memory pages in this memory region, - if available.You must use the SBMemoryRegionInfo::HasDirtyMemoryPageList() - method to determine if a dirty memory list is available; - it will depend on the target system can provide this information." +%feature("docstring", " + Return the number of dirty (modified) memory pages in this + memory region, if available. You must use the + SBMemoryRegionInfo::HasDirtyMemoryPageList() method to + determine if a dirty memory list is available; it will depend + on the target system can provide this information." ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; -%feature("docstring", - " +%feature("docstring", " Return the address of a modified, or dirty, page of memory.If the provided index is out of range, or this memory region does not have dirty page information, @@ -31,7 +29,7 @@ %feature("docstring", " Return the size of pages in this memory region .0 will be - returned if this information was unavailable." + returned if this information was unavailable." ) lldb::SBMemoryRegionInfo::GetPageSize; %feature("docstring", " >From 026e51d1aa43e3d55ee076b6eeee1c498f58cab3 Mon Sep 17 00:00:00 2001 From: Bar Soloveychik <bars...@fb.com> Date: Mon, 21 Jul 2025 15:47:23 -0700 Subject: [PATCH 7/7] formatting --- .../interface/SBMemoryRegionInfoDocstrings.i | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i index 187f005496320..be6fa40ed7446 100644 --- a/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i +++ b/lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i @@ -1,7 +1,7 @@ %feature("docstring", - "API clients can get information about memory regions in processes. +"API clients can get information about memory regions in processes. - For Python users, `len()` is overriden to output the size of the memory region in bytes." +For Python users, `len()` is overriden to output the size of the memory region in bytes." ) lldb::SBMemoryRegionInfo; %feature("docstring", " @@ -21,16 +21,16 @@ ) lldb::SBMemoryRegionInfo::GetNumDirtyPages; %feature("docstring", " - Return the address of a modified, - or dirty, page of memory.If the provided index is out of range, - or this memory region does not have dirty page information, - LLDB_INVALID_ADDRESS is returned." + Return the address of a modified, or dirty, page of memory. + If the provided index is out of range, or this memory region + does not have dirty page information, LLDB_INVALID_ADDRESS + is returned." ) lldb::SBMemoryRegionInfo::GetDirtyPageAddressAtIndex; %feature("docstring", " - Return the size of pages in this memory region .0 will be - returned if this information was unavailable." -) lldb::SBMemoryRegionInfo::GetPageSize; + Return the size of pages in this memory region. 0 will be returned + if this information was unavailable." +) lldb::SBMemoryRegionInfo::GetPageSize(); %feature("docstring", " Takes an SBStream parameter to write output to, @@ -40,4 +40,4 @@ For Python users, `str()` is overriden with the results of this function. " -) lldb::SBMemoryRegionInfo::GetDescription; +) lldb::SBMemoryRegionInfo::GetDescription; \ No newline at end of file _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits