From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23211 invoked by alias); 24 Feb 2014 07:50:13 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 23199 invoked by uid 89); 24 Feb 2014 07:50:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 24 Feb 2014 07:50:10 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1WHqIh-0004vw-7j from Yao_Qi@mentor.com ; Sun, 23 Feb 2014 23:50:07 -0800 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 23 Feb 2014 23:50:07 -0800 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.2.247.3; Sun, 23 Feb 2014 23:50:06 -0800 Message-ID: <530AF927.6050306@codesourcery.com> Date: Mon, 24 Feb 2014 07:50:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: asmwarrior CC: Subject: Re: [Windows]Fix a bug which cause GDB.exe assert when try to run the inferior References: <530612A8.4000903@gmail.com> <5306A9BC.4080701@codesourcery.com> <5306EE2A.2060103@gmail.com> <5306FA43.1070408@codesourcery.com> <83sirc532m.fsf@gnu.org> <530706DD.8060605@codesourcery.com> <530AEA6C.8050002@codesourcery.com> <530AF067.1010002@gmail.com> In-Reply-To: <530AF067.1010002@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2014-02/txt/msg00721.txt.bz2 On 02/24/2014 03:10 PM, asmwarrior wrote: > Hi, Yao, thanks. I was thinking that I won't need further change, because it was a tiny patch. The patch is small, but we still have to make sure it is correct, documented, and compliant to coding standard, etc. There are something not very interesting in the procedure, such as writing changelog or commit log, but they guarantee GDB still maintainable after thousands of commits in several years. It is good to see your patch, and better to adjust patch to a commit-able state as a result of reviews. > Anyway, would you mind to commit for me? I don't have commit access. Thanks for testing GDB for windows target, reporting this regression, and posting your patch. Patch below is what I pushed in. -- Yao (齐尧) >From 5b8017c1ebd1b8105f6846dc15d5158e8ec3f450 Mon Sep 17 00:00:00 2001 From: Yuanhui Zhang Date: Mon, 24 Feb 2014 15:22:10 +0800 Subject: [PATCH] Fix a GDB assert failure on windows A GDB internal error is found on native mingw32 target. (gdb) run ../../binutils-gdb/gdb/target.c:1483: internal-error: target_xfer_partial: Assertion `*xfered_len > 0' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) This error was introduced by the following snippet in commit 9b409511d07fe375284701af34909fb539029caf > @@ -2536,27 +2538,30 @@ windows_xfer_shared_libraries (struct target_ops *ops, > } > > obstack_free (&obstack, NULL); > - return len; > + *xfered_len = (ULONGEST) len; > + return TARGET_XFER_OK; > } In the original code, len is returned, which could be 0, but after that commit, only TARGET_XFER_OK is returned, which is wrong. If len is 0, TARGET_XFER_EOF should be returned. (it is 0 in enum target_xfer_status declaration). gdb: 2014-02-23 Yuanhui Zhang * windows-nat.c (windows_xfer_shared_libraries): Return TARGET_XFER_EOF if LEN is zero to fix an assert failure when requested object is TARGET_OBJECT_LIBRARIES. --- gdb/windows-nat.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 4366aab..6c45d0a 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -2501,7 +2501,7 @@ windows_xfer_shared_libraries (struct target_ops *ops, obstack_free (&obstack, NULL); *xfered_len = (ULONGEST) len; - return TARGET_XFER_OK; + return len != 0 ? TARGET_XFER_OK : TARGET_XFER_EOF; } static enum target_xfer_status -- 1.7.7.6