<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>I've just seen this reply now. Thanks a million for your help.</p>
<p>Actually I've gone in another direction to get the stackmap section. and it's working till now. I've used the JITEventListner interface. However, I could not manage to parse the section yet. I could not figure how to use the stackmap parser at all!</p>
<p><br>
</p>
<div id="Signature">
<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">
<div class="BodyFragment"><font size="2"><span style="font-size:10pt">
<div class="PlainText">Regards,<br>
Marwa Yusuf<br>
Teaching Assistant - Computer Engineering Department<br>
Faculty of Engineering - Benha University<br>
E-JUST PhD Student<br>
Computer Science & Engineering Dept.</div>
</span></font></div>
</div>
</div>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Philip Reames <listmail@philipreames.com><br>
<b>Sent:</b> Wednesday, August 12, 2015 9:03 PM<br>
<b>To:</b> marwayusuf@feng.bu.edu.eg; llvm-dev@lists.llvm.org<br>
<b>Subject:</b> Re: [llvm-dev] About Stackmap section</font>
<div> </div>
</div>
<div>
<div class="moz-cite-prefix">On 08/09/2015 07:43 AM, <a class="moz-txt-link-abbreviated" href="mailto:marwayusuf@feng.bu.edu.eg">
marwayusuf@feng.bu.edu.eg</a> via llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Dear All</p>
<p>I need to read the stackmap section at runtime of the inspected application. I've read the documentation of stackmap and found this paragraph:</p>
<p>"<span style="">A JIT compiler can easily access this section by providing its own memory manager via the LLVM C API</span><span style=""> </span><tt class="docutils literal" style=""><span class="pre">LLVMCreateSimpleMCJITMemoryManager()</span></tt><span style="font-family:'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif; font-size:14px; line-height:21px">.
 When creating the memory manager, the JIT provides a callback:</span><span style="font-family:'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif; font-size:14px; line-height:21px"> </span><tt class="docutils literal" style=""><span class="pre">LLVMMemoryManagerAllocateDataSectionCallback()</span></tt><span style="font-family:'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif; font-size:14px; line-height:21px">.
 When LLVM creates this section, it invokes the callback and passes the section name. The JIT can record the in-memory address of the section at this time and later parse it to recover the stack map data.</span></p>
<p style="margin:0.8em 0px 0.5em; font-family:'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif; font-size:14px; line-height:21px">
On Darwin, the stack map section name is “__llvm_stackmaps”. The segment name is “__LLVM_STACKMAPS”."</p>
<p style="margin:0.8em 0px 0.5em; font-family:'Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif; font-size:14px; line-height:21px">
However I can't figure how to make <span style="font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace; font-size:15.1999998092651px">LLVMCreateSimpleMCJITMemoryManager or </span><span style="">LLVMMemoryManagerAllocateDataSectionCallback
 or make use of them. And I could not find examples for their useage. Any help is appreciated.</span></p>
</div>
</blockquote>
I'm going to completely ignore the C API because I'm not familiar with it, but the ideas should map over.<br>
<br>
You need to create a custom MCJIT memory manager object which implements the "allocateDataSection" method on "SectionMemoryManager" such that it captures information about the section being created when actually doing the allocation.  If you're relocating sections,
 you'll also need to track this through mapSectionAddress.  If you save information about the relevant section in a side structure, you can use the in tree stack map parser to decode the section.<br>
<br>
Hope that helps.  <br>
<br>
Philip<br>
</div>
</div>
</div>
</body>
</html>