[Crash-utility] [BUG} gdb disassembly-flavor affecting display of call stack.
Dave Anderson
anderson at redhat.com
Mon Jan 4 13:48:55 UTC 2016
----- Original Message -----
> Hello,
>
> I've observed the following rather peculiar behavior of crash 7.1.3 (gdb
> 7.6).
>
> crash> set ffff88000376d280
> PID: 9615
> COMMAND: "jbd2/dm-32-8"
> TASK: ffff88000376d280 [THREAD_INFO: ffff880002bdc000]
> CPU: 2
> STATE: TASK_UNINTERRUPTIBLE
>
>
> crash> gdb set disassembly-flavor intel
> crash> bt
> PID: 9615 TASK: ffff88000376d280 CPU: 2 COMMAND: "jbd2/dm-32-8"
> #0 [ffff880002bdf9a8] __schedule at ffffffff81618404
> #1 [ffff880002bdf9e0] __clone_and_map_data_bio at ffffffff8150af42
> #2 [ffff880002bdfa40] schedule at ffffffff81618a8e
> crash> gdb set disassembly-flavor att
> crash> bt
> PID: 9615 TASK: ffff88000376d280 CPU: 2 COMMAND: "jbd2/dm-32-8"
> #0 [ffff880002bdf9a8] __schedule at ffffffff81618404
> #1 [ffff880002bdfa40] schedule at ffffffff81618a8e
> #2 [ffff880002bdfa60] schedule_timeout at ffffffff8161b3e6
> #3 [ffff880002bdfb20] io_schedule_timeout at ffffffff81618054
> #4 [ffff880002bdfb50] bit_wait_io at ffffffff81619196
> #5 [ffff880002bdfb60] __wait_on_bit at ffffffff81618f7d
> #6 [ffff880002bdfbb0] out_of_line_wait_on_bit at ffffffff816190d8
> #7 [ffff880002bdfc20] __wait_on_buffer at ffffffff811d13d8
> #8 [ffff880002bdfc30] jbd2_journal_commit_transaction at ffffffff81270a45
> #9 [ffff880002bdfe30] kjournald2 at ffffffff81275073
> #10 [ffff880002bdfec0] kthread at ffffffff810738fc
> #11 [ffff880002bdff50] ret_from_fork at ffffffff8161c75f
>
>
> How come setting the disassembly flavor (which should be just a
> presentation aid) affects the displaying of the callstack? It took me a
> while to correlate this behavior. It's also strange that this doesn't
> happen on all processes on a vmcore file but only on some, so far I
> haven't been able to find any clues as to which processes this applies to.
Because the x86_64 backtrace code parses gdb text disassembly output.
I haven't looked into which instance causes the symptom you're seeing, but
it's presumably related to one of these cases, all of which pass disassembly
commands to gdb:
$ grep gdb_pass_through x86_64.c
if (!gdb_pass_through(buf, pc->tmpfile2, GNU_RETURN_ON_ERROR)) {
if (gdb_pass_through(buf, pc->tmpfile2, GNU_RETURN_ON_ERROR)) {
if (!gdb_pass_through(buf1, pc->tmpfile, GNU_RETURN_ON_ERROR))
if (!gdb_pass_through(buf, pc->tmpfile, GNU_RETURN_ON_ERROR))
if (!gdb_pass_through(buf, pc->tmpfile2, GNU_RETURN_ON_ERROR)) {
$
Dave
>
> Regards,
> Nikolay
>
More information about the Crash-utility
mailing list