[racket] Statistical profiler doesn't return a complete report with JIT

From: Jon Rafkind (rafkind at cs.utah.edu)
Date: Fri Nov 16 18:18:24 EST 2012

Ok it might be due to the dh_strip rule. I have overriden it to do nothing for now. Let's see if tomorrows package works.

On 11/16/2012 04:09 PM, Kevin Tew wrote:
> It looks stripped to me! no .debug sections.
>
>
> ➜ ~/temp/usr/bin git:(master) ✗ objdump -h racket Fri Nov 16 11 2012 04:07:16 PM:
>
> racket: file format elf64-x86-64
>
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .interp 0000001c 0000000000400270 0000000000400270 00000270 2**0
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 1 .note.ABI-tag 00000020 000000000040028c 000000000040028c 0000028c 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 2 .note.gnu.build-id 00000024 00000000004002ac 00000000004002ac 000002ac 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 3 .gnu.hash 00004b5c 00000000004002d0 00000000004002d0 000002d0 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 4 .dynsym 0000e658 0000000000404e30 0000000000404e30 00004e30 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 5 .dynstr 0000d785 0000000000413488 0000000000413488 00013488 2**0
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 6 .gnu.version 00001332 0000000000420c0e 0000000000420c0e 00020c0e 2**1
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 7 .gnu.version_r 00000100 0000000000421f40 0000000000421f40 00021f40 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 8 .rela.dyn 000000a8 0000000000422040 0000000000422040 00022040 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 9 .rela.plt 00001308 00000000004220e8 00000000004220e8 000220e8 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 10 .init 0000001a 00000000004233f0 00000000004233f0 000233f0 2**2
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 11 .plt 00000cc0 0000000000423410 0000000000423410 00023410 2**4
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 12 .text 0037ee50 00000000004240d0 00000000004240d0 000240d0 2**4
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 13 .fini 00000009 00000000007a2f20 00000000007a2f20 003a2f20 2**2
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 14 .rodata 00023884 00000000007a2f40 00000000007a2f40 003a2f40 2**5
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 15 .eh_frame_hdr 0000c5c4 00000000007c67c4 00000000007c67c4 003c67c4 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 16 .eh_frame 00032004 00000000007d2d88 00000000007d2d88 003d2d88 2**3
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 17 .gcc_except_table 00000049 0000000000804d8c 0000000000804d8c 00404d8c 2**0
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 18 .tbss 00000ba0 0000000000a05dc0 0000000000a05dc0 00405dc0 2**3
> ALLOC, THREAD_LOCAL
> 19 .init_array 00000008 0000000000a05dc0 0000000000a05dc0 00405dc0 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 20 .fini_array 00000008 0000000000a05dc8 0000000000a05dc8 00405dc8 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 21 .jcr 00000008 0000000000a05dd0 0000000000a05dd0 00405dd0 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 22 .dynamic 00000210 0000000000a05dd8 0000000000a05dd8 00405dd8 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 23 .got 00000018 0000000000a05fe8 0000000000a05fe8 00405fe8 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 24 .got.plt 00000670 0000000000a06000 0000000000a06000 00406000 2**3
> CONTENTS, ALLOC, LOAD, DATA
> 25 .data 00028b30 0000000000a06680 0000000000a06680 00406680 2**5
> CONTENTS, ALLOC, LOAD, DATA
> 26 .bss 000364b0 0000000000a2f1c0 0000000000a2f1c0 0042f1b0 2**5
> ALLOC
>
> On 11/16/2012 03:48 PM, Jon Rafkind wrote:
>> Looking over the build log it doesn't look like the racket binary is stripped.
>>
>> https://launchpadlibrarian.net/122407607/buildlog_ubuntu-raring-amd64.racket_5.3.1.5-20121108~raring_BUILDING.txt.gz
>>
>> On 11/16/2012 08:46 AM, Diogo F. S. Ramos wrote:
>>> Matthew Flatt <mflatt at cs.utah.edu> writes:
>>>
>>>> Does the executable from the package have debugging info stripped away?
>>>> The Racket JIT needs some DWARF information to reconstruct the call
>>>> stack for backtraces and profiling on x86_64.
>>> I don't know if my method is conclusive, but running `gdb' with the
>>> package's executable tells me this:
>>>
>>> Reading symbols from /usr/bin/racket...(no debugging symbols
>>> found)...done.
>>> ____________________
>>> Racket Users list:
>>> http://lists.racket-lang.org/users
>>
>> ____________________
>> Racket Users list:
>> http://lists.racket-lang.org/users
>


Posted on the users mailing list.