<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi Romaric,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The call to Disassembler::FindPlugin should have arch set to your triple. If m_options.arch is not set on the disassembly command line, it will get it from the target:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"> 
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">if</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> (!m_options.arch.IsValid())<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">    m_options.arch
</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">=</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> target->GetArchitecture();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">That leads me to wonder if your triple is set correctly after you do the run. What is the output from these commands, when you’re stopped?:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">target list<o:p></o:p></p>
<p class="MsoNormal">platform status<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My guess is you’re connected to a remote gdb-server on a simulator for dpu, and it’s telling lldb that the triple is x86_64.x.x.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If target list says the arch is dpu before the run, and x86_64 after the run, we should look at the RSP log. Before the run, type<o:p></o:p></p>
<p class="MsoNormal">log enable -f <file> gdb-remote packets<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Attach the file to your next message.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ted<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Romaric Jodin <rjodin@upmem.com> <br>
<b>Sent:</b> Thursday, June 13, 2019 1:16 AM<br>
<b>To:</b> Ted Woodward <tedwood@quicinc.com><br>
<b>Cc:</b> LLDB <lldb-dev@lists.llvm.org><br>
<b>Subject:</b> [EXT] Re: [lldb-dev] Disassembling issue<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi Ted,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thank you for the answer.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I'm not sure I understand you well. It seems to me that my program call "Disassembler::FindPlugin" with the "m_options.arch" set to "x86_64". But my toolchain does not contain a LLVM supporting x86_64, so it feels normal to me that it is
 not able to create this disassembler. What is weird is that the first time I'm executing it, it managed to do so.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I also have kind of the same issue with breakpoint. It's like if I'm missing the debug information after I do the "run" command:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<p class="MsoNormal">(lldb) file test<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Current executable set to 'test' (dpu).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) b main<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Breakpoint 1: where = test`main + 24 at test.c:8, address = 0x80000078<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) r<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Process 21312 launched: '/home/rjodin/work/dpu_tools/llvm/lldb/test/test' (dpu)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Process 21312 stopped<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">* thread #1, name = 'DPUthread0', stop reason = Thread finished<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    frame #0: 0x00000000800000c0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) b main<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Breakpoint 2: no locations (pending).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">WARNING:  Unable to resolve breakpoint to any actual locations.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<p class="MsoNormal">When I'm doing the disassembly, I can manage to disassemble if I add the option with my architecture to the command line, but as you can see below, I also do not have the debug information that I had at the first disassembly:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<p class="MsoNormal">(lldb) file test<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Current executable set to 'test' (dpu).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) dis -s 0x80000000<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">test`__bootstrap:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">test[0x80000000] <+0>:  jnz    id, 0x80000020<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">test[0x80000008] <+8>:  move   r0, 0xff<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">test[0x80000010] <+16>: release r0, 0x0, nz, 0x80000018<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">test[0x80000018] <+24>: sub    r0, r0, 0x1, pl, 0x80000010<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) r<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Process 21312 launched: '/home/rjodin/work/dpu_tools/llvm/lldb/test/test' (dpu)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Process 21312 stopped<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">* thread #1, name = 'DPUthread0', stop reason = Thread finished<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    frame #0: 0x00000000800000a0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) dis -s 0x80000000<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">error: Unable to find Disassembler plug-in for the 'x86_64' architecture.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">(lldb) dis -s 0x80000000 -A dpu<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    0x80000000: jnz    id, 0x80000020<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    0x80000008: move   r0, 0xff<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    0x80000010: release r0, 0x0, nz, 0x80000018<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    0x80000018: sub    r0, r0, 0x1, pl, 0x80000010<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<p class="MsoNormal">Any ideas about it?<o:p></o:p></p>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Romaric<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Jun 12, 2019 at 6:55 PM Ted Woodward <<a href="mailto:tedwood@quicinc.com">tedwood@quicinc.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The error is coming from source/Commands/CommandObjectDisassemble.cpp . It’s not able to create the disassembler for your architecture. The call to Disassembler::FindPlugin fails.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">My guess is something in the call to MCDisasmInstance::Create in source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp is failing. Step through that and make sure everything there
 is working.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Ted<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> lldb-dev <<a href="mailto:lldb-dev-bounces@lists.llvm.org" target="_blank">lldb-dev-bounces@lists.llvm.org</a>>
<b>On Behalf Of </b>Romaric Jodin via lldb-dev<br>
<b>Sent:</b> Wednesday, June 12, 2019 8:23 AM<br>
<b>To:</b> <a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<b>Subject:</b> [EXT] [lldb-dev] Disassembling issue<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi everyone,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I'm trying to have lldb being able to debug my architecture. It does it well after loading my elf. But then I run it, stop it in middle, try to disassemble and at that point it
 seems that I lost some information about my architecture. lldb tries to disassemble it for x86, which in not possible with my toolchain.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Here is a log of what I am doing:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<blockquote style="margin-left:30.0pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">(lldb) file test<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Current executable set to 'test' (dpu).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">(lldb) dis -s 0x80000000<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">test`__bootstrap:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">test[0x80000000] <+0>:  jnz    id, 0x80000020<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">test[0x80000008] <+8>:  move   r0, 0xff<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">test[0x80000010] <+16>: release r0, 0x0, nz, 0x80000018<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">test[0x80000018] <+24>: sub    r0, r0, 0x1, pl, 0x80000010<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">(lldb) r<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Process 21312 launched: '/home/rjodin/work/dpu_tools/llvm/lldb/test/test' (dpu)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Process 21312 stopped<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">* thread #1, name = 'DPUthread0', stop reason = Thread stopped<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">    frame #0: 0x0000000080000090<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">(lldb) dis -s 0x80000000<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">error: Unable to find Disassembler plug-in for the 'x86_64' architecture.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">(lldb)<o:p></o:p></p>
</div>
</blockquote>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Any ideas of what I am missing in my implementation?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
<o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-size:9.5pt;color:black">Romaric JODIN</span></b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:9.5pt;color:black">UPMEM</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i><span style="font-size:7.5pt;color:black">Software Engineer</span></i><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#888888"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#888888"><img border="0" width="50" height="50" style="width:.5208in;height:.5208in" id="gmail-m_-7693231461788861330_x005f_x0000_i1025" src="cid:image001.png@01D521DB.DDFD0A00"></span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><b><span style="font-size:9.5pt;color:black">Romaric JODIN</span></b><span style="color:#888888"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;color:black">UPMEM</span><span style="color:#888888"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><i><span style="font-size:7.5pt;color:black">Software Engineer</span></i><span style="color:#888888"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><img border="0" width="50" height="50" style="width:.5208in;height:.5208in" id="_x0000_i1026" src="cid:image001.png@01D521DB.DDFD0A00"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>