From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24812 invoked by alias); 22 Mar 2007 07:44:48 -0000 Received: (qmail 24802 invoked by uid 22791); 22 Mar 2007 07:44:46 -0000 X-Spam-Check-By: sourceware.org Received: from mail.sunnorth.com.cn (HELO mswbj01.sunnorth.com.cn) (124.42.0.200) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 22 Mar 2007 07:44:43 +0000 Received: from maillog.sunnorth.com.cn (unverified [172.20.10.250]) by mswbj01.sunnorth.com.cn (Clearswift SMTPRS 5.2.5) with ESMTP id for ; Thu, 22 Mar 2007 15:44:39 +0800 Received: from ntns1cn.sunnorth.com.cn (ntns1cn.sunnorth.com.cn [172.20.10.252]) by maillog.sunnorth.com.cn (8.12.10/8.12.10) with ESMTP id l2M9b4O6014269 for ; Thu, 22 Mar 2007 17:37:04 +0800 To: gdb@sourceware.org Subject: GDB infinite loop when stepping on "while (1) i++;" MIME-Version: 1.0 X-Mailer: Lotus Notes Release 6.5 September 26, 2003 Message-ID: From: qinwei Date: Thu, 22 Mar 2007 07:44:00 -0000 Content-Type: text/plain; charset="US-ASCII" X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-03/txt/msg00260.txt.bz2 Dears, problems are here: gcc -o t -gdwarf-2 tp_while1.c gdb t (gdb) b main Breakpoint 1 at 0x8048350: file tp_while1.c, line 3. (gdb) r Starting program: /home/qinwei/GJ283/code/build_linux/debug-gdb/t Breakpoint 1, main () at tp_while1.c:3 3 int i = 10; (gdb) n 4 while (1) i++; (gdb) n When program stops at "while (1) i++;", and printing "next" command will cause gdb infinite loop. The target are x86, score, or other? (gdb-6.6 release version) Is the reason that the following dwarf-2 info: "Special opcode 104: advance Address by 7 to 0x8048357 and Line by 1 to 4" "Advance PC by 7 to 804835e" which makes "while (1)" and "i++;" the same line number? And gdb will get "stop_pc" from the range [0x8048357, 0x804835e] and will not stop? How to solve it? Thanks! int main (void) { int i = 10; while (1) i++; return 0; } Line Number Statements: Extended opcode 2: set Address to 0x8048334 Special opcode 6: advance Address by 0 to 0x8048334 and Line by 1 to 2 Advance PC by constant 17 to 0x8048345 Special opcode 160: advance Address by 11 to 0x8048350 and Line by 1 to 3 Special opcode 104: advance Address by 7 to 0x8048357 and Line by 1 to 4 Advance PC by 7 to 804835e Extended opcode 1: End of Sequence 08048334
: 8048334: 55 push %ebp 8048335: 89 e5 mov %esp,%ebp 8048337: 83 ec 08 sub $0x8,%esp 804833a: 83 e4 f0 and $0xfffffff0,%esp 804833d: b8 00 00 00 00 mov $0x0,%eax 8048342: 83 c0 0f add $0xf,%eax 8048345: 83 c0 0f add $0xf,%eax 8048348: c1 e8 04 shr $0x4,%eax 804834b: c1 e0 04 shl $0x4,%eax 804834e: 29 c4 sub %eax,%esp 8048350: c7 45 fc 0a 00 00 00 movl $0xa,0xfffffffc(%ebp) 8048357: 8d 45 fc lea 0xfffffffc(%ebp),%eax 804835a: ff 00 incl (%eax) 804835c: eb f9 jmp 8048357 804835e: 90 nop 804835f: 90 nop Best regards, Qinwei Mail qinwei@sunnorth.com.cn Phone +86-010-62981668-2708 Fax +86-010-62985972