<div dir="ltr">Seems like it should be possible to write a test for this.</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 1, 2015 at 6:59 AM Tamas Berghammer via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org">lldb-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: tberghammer<br>
Date: Thu Oct  1 08:57:57 2015<br>
New Revision: 249013<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=249013&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=249013&view=rev</a><br>
Log:<br>
Fix breakpoint opcode calculation on Linux<br>
<br>
Change the way we detect if we have to place a thumb breakpoint instead<br>
of an arm breakpoint in the case when no symbol table or mapping symbols<br>
are available. Detect it based on the LSB of the FileAddress instead of<br>
the LSB of the LoadAddress because the LSB of the LoadAddress is already<br>
masked out.<br>
<br>
Modified:<br>
    lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp<br>
<br>
Modified: lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp?rev=249013&r1=249012&r2=249013&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp?rev=249013&r1=249012&r2=249013&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp (original)<br>
+++ lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp Thu Oct  1 08:57:57 2015<br>
@@ -575,10 +575,17 @@ PlatformLinux::GetSoftwareBreakpointTrap<br>
             AddressClass addr_class = eAddressClassUnknown;<br>
<br>
             if (bp_loc_sp)<br>
+            {<br>
                 addr_class = bp_loc_sp->GetAddress ().GetAddressClass ();<br>
<br>
-            if (addr_class == eAddressClassCodeAlternateISA<br>
-                || (addr_class == eAddressClassUnknown && (bp_site->GetLoadAddress() & 1)))<br>
+                if (addr_class == eAddressClassUnknown &&<br>
+                    (bp_loc_sp->GetAddress ().GetFileAddress () & 1))<br>
+                {<br>
+                    addr_class = eAddressClassCodeAlternateISA;<br>
+                }<br>
+            }<br>
+<br>
+            if (addr_class == eAddressClassCodeAlternateISA)<br>
             {<br>
                 trap_opcode = g_thumb_breakpoint_opcode;<br>
                 trap_opcode_size = sizeof(g_thumb_breakpoint_opcode);<br>
<br>
<br>
_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a><br>
</blockquote></div>