From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12912 invoked by alias); 5 Apr 2010 23:29:28 -0000 Received: (qmail 12903 invoked by uid 22791); 5 Apr 2010 23:29:27 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=BAYES_00,MSGID_MULTIPLE_AT,TW_DB,TW_DJ,TW_EB,TW_GP,TW_JG,TW_SD X-Spam-Check-By: sourceware.org Received: from mailhost.u-strasbg.fr (HELO mailhost.u-strasbg.fr) (130.79.200.151) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 05 Apr 2010 23:29:21 +0000 Received: from baal.u-strasbg.fr (baal.u-strasbg.fr [IPv6:2001:660:2402::41]) by mailhost.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id o35NTHV0052859 for ; Tue, 6 Apr 2010 01:29:18 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) Received: from mailserver.u-strasbg.fr (ms3.u-strasbg.fr [IPv6:2001:660:2402:d::12]) by baal.u-strasbg.fr (8.14.0/jtpda-5.5pre1) with ESMTP id o35NTH13071736 for ; Tue, 6 Apr 2010 01:29:17 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) Received: from d620muller (lec67-4-82-230-53-140.fbx.proxad.net [82.230.53.140]) (user=mullerp mech=LOGIN) by mailserver.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id o35NTGLm046166 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 6 Apr 2010 01:29:17 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) From: "Pierre Muller" To: Subject: Go32-v2 native woes Date: Mon, 05 Apr 2010 23:29:00 -0000 Message-ID: <002a01cad517$d36eab90$7a4c02b0$@muller@ics-cnrs.unistra.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit x-cr-hashedpuzzle: aGI= 6IU= AVID BG0T BKBe B6w1 Ds6s E8yx Fei+ G7lw HvPW I7R0 JEU8 KQJG Kw2S MV6V;1;ZwBkAGIAQABzAG8AdQByAGMAZQB3AGEAcgBlAC4AbwByAGcA;Sosha1_v1;7;{43A89B71-4BA8-49B8-AEBE-EAB90EFD3B6A};cABpAGUAcgByAGUALgBtAHUAbABsAGUAcgBAAGkAYwBzAC0AYwBuAHIAcwAuAHUAbgBpAHMAdAByAGEALgBmAHIA;Mon, 05 Apr 2010 23:29:19 GMT;RwBvADMAMgAtAHYAMgAgAG4AYQB0AGkAdgBlACAAdwBvAGUAcwA= x-cr-puzzleid: {43A89B71-4BA8-49B8-AEBE-EAB90EFD3B6A} 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: 2010-04/txt/msg00018.txt.bz2 There are again internal-error problems with go32v2 native about registers that are not correct. Current CVS gives this: Breakpoint 2 at 0xc485: file ../../src/gdb/cli/cli-cmds.c, line 223. (top-gdb) set prompt top> #Note top> is an older gdb that works fine. top> r ./gdb Starting program: e:/cygwin/usr/local/src/gdbcvs/djcvsbuild/gdb/gdb.exe ./gdb GNU gdb (GDB) 7.1.50.20100405-cvs Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i586-pc-msdosdjgpp --target=djgpp". For bug reporting instructions, please see: ... Breakpoint 1, internal_error ( file=0xe6d70 "../../src/gdb/target-descriptions.c", line=1140, string=0xe6d55 "%s: Assertion `%s' failed.") at ../../src/gdb/utils.c:1050 1050 va_start (ap, string); top> bt #0 internal_error (file=0xe6d70 "../../src/gdb/target-descriptions.c", line=1140, string=0xe6d55 "%s: Assertion `%s' failed.") at ../../src/gdb/utils.c:1050 #1 0x000e8cf2 in tdesc_use_registers (gdbarch=0x46eda0, target_desc=0x3ed480, early_data=0x46fd90) at ../../src/gdb/target-descriptions.c:1140 #2 0x0013a17c in i386_gdbarch_init (info=..., arches=0x0) at ../../src/gdb/i386-tdep.c:6699 #3 0x0004dbd6 in gdbarch_find_by_info (info=...) at ../../src/gdb/gdbarch.c:3979 #4 0x00088785 in set_gdbarch_from_file (abfd=0x42c0a0) at ../../src/gdb/arch-utils.c:552 #5 0x00017c8b in exec_file_attach (filename=0x3eaeb8 "./gdb", from_tty=1) at ../../src/gdb/exec.c:296 #6 0x000256dd in catch_command_errors (command=0x179e7 , arg=0x3eaeb8 "./gdb", from_tty=1, mask=6) at ../../src/gdb/exceptions.c:525 #7 0x00002a2a in captured_main (data=0x3ea208) at ../../src/gdb/main.c:808 #8 0x00025649 in catch_errors (func=0x1dfa , func_args=0x3ea208, errstring=0x1b94 "", mask=6) at ../../src/gdb/exceptions.c:510 #9 0x00002d72 in gdb_main (args=0x3ea208) at ../../src/gdb/main.c:916 #10 0x0000180d in main (argc=2, argv=0x3eaed8) at ../../src/gdb/gdb.c:33 top> f 1 #1 0x000e8cf2 in tdesc_use_registers (gdbarch=0x46eda0, target_desc=0x3ed480, early_data=0x46fd90) at ../../src/gdb/target-descriptions.c:1140 1140 gdb_assert (VEC_length (tdesc_arch_reg, data->arch_regs) <= num_regs); top> p num_regs $1 = 32 top> p *data.arch_regs $2 = {num = 33, alloc = 36, vec = {{reg = 0x3ed6d8, type = 0x0}}} top> The additional reg in arch_regs seems to come from i386_validate_tdesc_p function: /* Need to include %mxcsr, so add one. */ num_regs += tdep->num_xmm_regs + 1; Adding this condition if (tdep->num_xmm_regs) removes the problem above, but I get another error later: Breakpoint 1 at 0x479d: file ../../src/gdb/utils.c, line 1050. Breakpoint 2 at 0xc485: file ../../src/gdb/cli/cli-cmds.c, line 223. (top-gdb) start Temporary breakpoint 3 at 0x17d4: file ../../src/gdb/gdb.c, line 28. Starting program: e:/cygwin/usr/local/src/gdbcvs/djcvsbuild/gdb/gdb.exe Temporary breakpoint 3, main (argc=1, argv=0x3eae78) at ../../src/gdb/gdb.c:28 28 memset (&args, 0, sizeof args); (top-gdb) inf reg eax 0x10 16 ecx 0x0 0 edx 0x100 256 ebx 0x3f6 1014 esp 0x3ea1f0 0x3ea1f0 ebp 0x3ea220 0x3ea220 esi 0x54 84 edi 0x36a258 3580504 eip 0x17d4 0x17d4 eflags 0x3206 [ PF IF #12 #13 ] cs 0x28f 655 ss 0x297 663 ds 0x297 663 es 0x297 663 fs 0x2a7 679 gs 0x2a7 679 Breakpoint 1, internal_error (file=0x1286ab "../../src/gdb/go32-nat.c", line=546, string=0x128680 "Invalid register no. %d in fetch_register.") at ../../src/gdb/utils.c:1050 1050 va_start (ap, string); GDB is trying to display register 32 which is normally "xmm0" and thus should not be displayed for go32v2. I was not able o fix that second problem :( Pierre Muller Pascal language support maintainer for GDB and old-DOS lover ...