Changes between Initial Version and Version 1 of Ticket #10641, comment 4


Ignore:
Timestamp:
Mar 6, 2014, 3:29:10 PM (10 years ago)
Author:
pulkomandy

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #10641, comment 4

    initial v1  
    33[23:11] <msaboff> PulkoMandy: If you have the disassembler enabled for your platform, you can set showDisassembly to true to see the generated code. showDisassembly can be set via the environment variable JSC_showDisassembly=1
    44[23:12] <PulkoMandy> http://paste.debian.net/85505/
    5 [23:13] <PulkoMandy> I get this
    65[23:13] <msaboff> PulkoMandy: The logging file will actually be DATA_LOG_FILENAME with the pid and ".txt" appended.
    7 [23:13] <PulkoMandy> I guess I have to enable disassembly now
    8 [23:13] <msaboff> PulkoMandy: That means that the disassembly is not enabled for your platform.  You can see the byte ranges for generated code though.
     6[23:13] <msaboff> PulkoMandy: You can see the byte ranges for generated code though.
    97[23:15] <msaboff> PulkoMandy: If you disassemble beginning at 0x145000, you can see the instructions that set up the stack for that function.
    108[23:15] <msaboff> PulkoMandy: Same thing for disassembling beginning from 0x102940
     
    1210[23:16] <PulkoMandy> the matching backtrace for this run
    1311[23:16] <PulkoMandy> the addresses are different, so...
    14 [23:18] <PulkoMandy> so, the caller ? is JIT, and the callee doesn't seem to be
    1512[23:19] <msaboff> PulkoMandy: The baseline compile of sleep#BywTgC should create a small frame
    1613[23:20] <msaboff> PulkoMandy: In http://paste.debian.net/85505/, the first function is a baseline JIT compile of a function named "sleep()"
     
    1916[23:23] <msaboff> PulkoMandy: No.  From a debugger, are you able to disassembly the first ~30 instructions of each of the JSC functions on the stack?
    2017[23:23] <msaboff> PulkoMandy: That is after the crash, but before the process dies.
    21 [23:24] <PulkoMandy> our debugger doesn't seem to want to disassemble this :(
    22 [23:25] <PulkoMandy> I can get an hex dump
    23 [23:27] <msaboff> PulkoMandy: You could see about enabling the udis86 disassembler in wtf/Platform.h - Look where  WTF_USE_UDIS86 is defined
    24 [23:28] <msaboff> PulkoMandy: It shouldn't require anything special from your OS.
    25 [23:29] <PulkoMandy> ok - this will take a while to recompile, however
    26 [23:29] <msaboff> PulkoMandy: Are you trying to disassemble using an address?
    2718[23:30] <PulkoMandy> I don't find a way to do that in our debugger
    2819[23:31] <PulkoMandy> well, we have a gdb port, but it is too old, I can try it but it probably won't be very helpful
    2920[23:34] <PulkoMandy> http://paste.debian.net/85514/
    30 [23:34] <PulkoMandy> yes, that doesn't really help
    31 [23:34] <PulkoMandy> is disassemble the right command to use?
    3221[23:35] <msaboff> PulkoMandy: But gdb shows many more frames
    3322[23:36] <msaboff> PulkoMandy: Some of those frames look bogus (0xfffffffb which is likely a JSC tag)