Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat are the origins and contents of .tramp sections?
    primarykey
    data
    text
    <p>I understand that they contain <a href="http://en.wikipedia.org/wiki/Trampoline_%28computers%29" rel="nofollow">trampolines</a>. Are the trampolines created by the compiler or the linker? What is the format of the section (it doesn't appear to be code. objdump -d fails to disassemble it.)? </p> <p>Is there some option to suppress their creation?</p> <pre><code> Nr Name Type Addr Off Size ES Flg Lk Inf Al 16 .tramp PROGBITS 0xxxxxxx 0xxxxx 0000xx 00 A 0 0 4 </code></pre> <p>I couldn't find anything in the <a href="http://flint.cs.yale.edu/cs422/doc/ELF_Format.pdf" rel="nofollow">ELF spec</a>.</p> <p><strong>Edit 2012.01.30:</strong></p> <p>A little more intelligence on the issue. The code is generated by the MaxAda compiler (ver 3.5.1) and is somehow connected to the Ada Runtime. </p> <p>The only symbol to reference the .tramp section is </p> <pre><code>4379: 080xxxxx 0 OBJECT GLOBAL DEFAULT 16 A$rts_bounce_list </code></pre> <p>Built a linker map file and discovered that the symbol originated in:</p> <pre><code>/usr/ada/i86_3.5.1/lib/libruntime.bart.a(bounce.red_hat.o) /usr/ada/i86_3.5.1/lib/libruntime.bart.a(ada.rts.elaboration.runtimeB) (A$rts_bounce_list) </code></pre> <p>A hex dump of the section (objdump) yields:</p> <pre><code>Contents of section .tramp: 80xxxa8 01000000 90e70708 22e80708 01000000 ........"....... 80xxxb8 24e80708 17eb0708 01000000 4cec0708 $...........L... 80xxxc8 4cee0708 01000000 4cee0708 c2f00708 L.......L....... 80xxxd8 01000000 701d0808 1f1e0808 01000000 ....p........... 80xxxe8 70400808 c6410808 02000000 ac960808 p@...A.......... 80xxxf8 00000000 02000000 00000000 00000000 ................ 80xxy08 02000000 00000000 00000000 03000000 ................ 80xxy18 66400808 01000000 02000000 349d0808 f@..........4... 80xxy28 00000000 02000000 00000000 00000000 ................ </code></pre> <p>The manual is thoroughly unhelpful:</p> <pre><code>Pragma TRAMPOLINE NOTE : Pragma TRAMPOLINE is reserved for internal MAXAda use only; it is not intended for use in user-defined code. </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload