Hey Tong,

I think the intent here was simply a mistake of forgetting a reference.
 Let's go with a simpler fix:

Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
===================================================================
--- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp (revision
215418)
+++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp (working
copy)
@@ -90,7 +90,7 @@
 static const RegisterInfo *
 GetRegisterInfo_i386(const lldb_private::ArchSpec &arch)
 {
-    static std::vector<lldb_private::RegisterInfo> g_register_infos
(GetPrivateRegisterInfoVector ());
+    std::vector<lldb_private::RegisterInfo> &g_register_infos =
GetPrivateRegisterInfoVector ();

     // Allocate RegisterInfo only once
     if (g_register_infos.empty())

This removes the need for the global destructor and doesn't pay a price if
that register info type is never hit.

Can you verify if this patch still fixes the issue?  If so, I'd rather go
with this.

Thanks!

-Todd




On Mon, Aug 11, 2014 at 3:43 PM, Tong Shen <[email protected]> wrote:

> Hi,
>
> This patch fixes assertion for i386 process on x86_64 linux host.
> Static variables with the same name in different functions are different
> variables.
>
> --
> Best Regards, Tong Shen
>
> _______________________________________________
> lldb-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
>


-- 
Todd Fiala | Software Engineer | [email protected] | 650-943-3180
Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
===================================================================
--- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp      
(revision 215418)
+++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp      
(working copy)
@@ -90,7 +90,7 @@
 static const RegisterInfo *
 GetRegisterInfo_i386(const lldb_private::ArchSpec &arch)
 {
-    static std::vector<lldb_private::RegisterInfo> g_register_infos 
(GetPrivateRegisterInfoVector ());
+    std::vector<lldb_private::RegisterInfo> &g_register_infos = 
GetPrivateRegisterInfoVector ();
 
     // Allocate RegisterInfo only once
     if (g_register_infos.empty())
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to