From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: Re: [BUGFIX][PATCH 3/4] xg_read_mem: Report on error. Date: Mon, 6 Jan 2014 16:50:01 -0800 Message-ID: <20140106165001.2cd08ce9@mantra.us.oracle.com> References: <1388857936-664-1-git-send-email-dslutz@verizon.com> <1388857936-664-4-git-send-email-dslutz@verizon.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1388857936-664-4-git-send-email-dslutz@verizon.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Don Slutz Cc: Keir Fraser , Ian Campbell , Stefano Stabellini , George Dunlap , Ian Jackson , xen-devel@lists.xen.org, Jan Beulich List-Id: xen-devel@lists.xenproject.org On Sat, 4 Jan 2014 12:52:15 -0500 Don Slutz wrote: > 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 > --- > tools/debugger/gdbsx/xg/xg_main.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tools/debugger/gdbsx/xg/xg_main.c > b/tools/debugger/gdbsx/xg/xg_main.c index 5736b86..a192478 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);