From: Don Slutz Date: Fri, 10 Jan 2014 21:56:59 +0000 (-0500) Subject: xg_read_mem: Report on error. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5670 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=dfbd3d62cd4a8e6e51be7896300e59c9ee0b8f82;p=xen.git xg_read_mem: Report on error. I had coded this with XGERR, but gdb will try to read memory without a direct request from the user. So the error message can be confusing. Signed-off-by: Don Slutz Acked-by: Mukesh Rathor --- diff --git a/tools/debugger/gdbsx/xg/xg_main.c b/tools/debugger/gdbsx/xg/xg_main.c index 0622ebd6d2..3b2a2855b9 100644 --- a/tools/debugger/gdbsx/xg/xg_main.c +++ b/tools/debugger/gdbsx/xg/xg_main.c @@ -775,7 +775,7 @@ xg_read_mem(uint64_t guestva, char *tobuf, int tobuf_len, uint64_t pgd3val) { struct xen_domctl_gdbsx_memio *iop = &domctl.u.gdbsx_guest_memio; union {uint64_t llbuf8; char buf8[8];} u = {0}; - int i; + int i, rc; XGTRC("E:gva:%llx tobuf:%lx len:%d\n", guestva, tobuf, tobuf_len); @@ -786,7 +786,9 @@ xg_read_mem(uint64_t guestva, char *tobuf, int tobuf_len, uint64_t pgd3val) iop->len = tobuf_len; iop->gwr = 0; /* not writing to guest */ - _domctl_hcall(XEN_DOMCTL_gdbsx_guestmemio, tobuf, tobuf_len); + if ( (rc = _domctl_hcall(XEN_DOMCTL_gdbsx_guestmemio, tobuf, tobuf_len)) ) + XGTRC("ERROR: failed to read %d bytes. errno:%d rc:%d\n", + iop->remain, errno, rc); for(i=0; i < XGMIN(8, tobuf_len); u.buf8[i]=tobuf[i], i++); XGTRC("X:remain:%d buf8:0x%llx\n", iop->remain, u.llbuf8);