(gdb) fr 4 #4 0x000056378b63e3aa in ide_reset (s=0x56378d64d730) at hw/ide/core.c:1318 1318 blk_aio_cancel(s->pio_aiocb); (gdb) p *s->pio_aiocb $1 = {aiocb_info = 0x56378bb55520 <blk_aio_em_aiocb_info>, bs = 0x0, cb = 0x56378b63d9f8 <ide_flush_cb>, opaque = 0x56378d64d730, refcnt = 2}
void bdrv_aio_cancel(BlockAIOCB *acb) { qemu_aio_ref(acb); bdrv_aio_cancel_async(acb); while (acb->refcnt > 1) { if (acb->aiocb_info->get_aio_context) { ... } else if (acb->bs) { ... } else { abort(); }
(gdb) fr 4 cancel( s->pio_ aiocb); em_aiocb_ info>, bs = 0x0, cb = 0x56378b63d9f8 <ide_flush_cb>, opaque = 0x56378d64d730, refcnt = 2}
#4 0x000056378b63e3aa in ide_reset (s=0x56378d64d730) at hw/ide/core.c:1318
1318 blk_aio_
(gdb) p *s->pio_aiocb
$1 = {aiocb_info = 0x56378bb55520 <blk_aio_
void bdrv_aio_ cancel( BlockAIOCB *acb) aio_ref( acb); aio_cancel_ async(acb) ; info->get_ aio_context) {
abort( );
{
qemu_
bdrv_
while (acb->refcnt > 1) {
if (acb->aiocb_
...
} else if (acb->bs) {
...
} else {
}