Adding to the lot, from the same gdb session.
(gdb) frame 3 #3 0x5664fe06 in ide_trim_bh_cb (opaque=0x57282c28) at hw/ide/core.c:360 360 iocb->common.cb(iocb->common.opaque, iocb->ret); (gdb) l 355 356 static void ide_trim_bh_cb(void *opaque) 357 { 358 TrimAIOCB *iocb = opaque; 359 360 iocb->common.cb(iocb->common.opaque, iocb->ret); 361 362 qemu_bh_delete(iocb->bh); 363 iocb->bh = NULL; 364 qemu_aio_release(iocb); (gdb) p *iocb $2 = {common = {aiocb_info = 0x56a2730c, bs = 0x570ecda0, cb = 0x565fce50 <dma_bdrv_cb>, opaque = 0x571a2250}, bh = 0x5728ada8, ret = 0, qiov = 0x571a2288, aiocb = 0x0, i = -1, j = 1} (gdb) p *iocb->qiov $4 = {iov = 0x57135f78, niov = 0, nalloc = 1, size = 0}
fwiw.
Adding to the lot, from the same gdb session.
(gdb) frame 3 cb(iocb- >common. opaque, iocb->ret); cb(iocb- >common. opaque, iocb->ret); delete( iocb->bh) ; release( iocb);
#3 0x5664fe06 in ide_trim_bh_cb (opaque=0x57282c28) at hw/ide/core.c:360
360 iocb->common.
(gdb) l
355
356 static void ide_trim_bh_cb(void *opaque)
357 {
358 TrimAIOCB *iocb = opaque;
359
360 iocb->common.
361
362 qemu_bh_
363 iocb->bh = NULL;
364 qemu_aio_
(gdb) p *iocb
$2 = {common = {aiocb_info = 0x56a2730c, bs = 0x570ecda0,
cb = 0x565fce50 <dma_bdrv_cb>, opaque = 0x571a2250}, bh = 0x5728ada8,
ret = 0, qiov = 0x571a2288, aiocb = 0x0, i = -1, j = 1}
(gdb) p *iocb->qiov
$4 = {iov = 0x57135f78, niov = 0, nalloc = 1, size = 0}
fwiw.