From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Kettenis To: jimb@cygnus.com Cc: gdb@sourceware.cygnus.com, gdb-patches@sourceware.cygnus.com Subject: Linux i387 fix Date: Mon, 13 Dec 1999 14:57:00 -0000 Message-id: <199912132257.XAA10500@delius.kettenis.local> X-SW-Source: 1999-q4/msg00497.html Hi Jim, The current i386-linux.c:supply_fpregset() passes whatever is in the reserved bits on to the GDB register file. Since the coporocessor seems to be initialized in a state where these reserved bits are turned on (at least in non-fpu using threads, see linux/arch/i386/kernel/ptrace.c) this means that `info float' and `info all-registers' will print some funny numbers. At the end of this message you'll find a patch that fixes this. I don't know if supply_xfpregs needs to be fixed too. Depends on the Cygnus-specific Linux kernel patch I guess. Maybe we should make some changes to convert_to_fpregset() too, such that it doesn't change the reserved bits in *FPREGSETP. Right now it overwrites those with the padding that's present in the GDB register file. Mark 1999-12-13 Mark Kettenis * i386-linux-nat.c (supply_fpregset): Mask off the reserved bits in *FPREGSETP before storing the values in the GDB register file. Index: gdb/i386-linux-nat.c =================================================================== RCS file: /var/cvsroot/gdb/gdb/i386-linux-nat.c,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 i386-linux-nat.c --- gdb/i386-linux-nat.c 1999/12/13 21:10:21 1.1.1.4 +++ gdb/i386-linux-nat.c 1999/12/13 22:44:20 @@ -195,29 +195,36 @@ void supply_fpregset (fpregset_t *fpregsetp) { + long l; int i; /* Supply the floating-point registers. */ for (i = 0; i < 8; i++) supply_register (FP0_REGNUM + i, FPREGSET_T_FPREG_ADDR (fpregsetp, i)); - supply_register (FCTRL_REGNUM, (char *) &fpregsetp->cwd); - supply_register (FSTAT_REGNUM, (char *) &fpregsetp->swd); - supply_register (FTAG_REGNUM, (char *) &fpregsetp->twd); + /* We have to mask off the reserved bits in *FPREGSETP before + storing the values in the GDB register file, since the reserved + parts of the structure typically are initialized with all bits + turned on. */ +#define supply(REGNO, MEMBER) \ + l = fpregsetp->MEMBER & 0xffff; \ + supply_register (REGNO, (char *) &l) + + supply (FCTRL_REGNUM, cwd); + supply (FSTAT_REGNUM, swd); + supply (FTAG_REGNUM, twd); supply_register (FCOFF_REGNUM, (char *) &fpregsetp->fip); - supply_register (FDS_REGNUM, (char *) &fpregsetp->fos); + supply (FDS_REGNUM, fos); supply_register (FDOFF_REGNUM, (char *) &fpregsetp->foo); - - /* Extract the code segment and opcode from the "fcs" member. */ - { - long l; - l = fpregsetp->fcs & 0xffff; - supply_register (FCS_REGNUM, (char *) &l); +#undef supply + + /* Extract the code segment and opcode from the "fcs" member. */ + l = fpregsetp->fcs & 0xffff; + supply_register (FCS_REGNUM, (char *) &l); - l = (fpregsetp->fcs >> 16) & ((1 << 11) - 1); - supply_register (FOP_REGNUM, (char *) &l); - } + l = (fpregsetp->fcs >> 16) & ((1 << 11) - 1); + supply_register (FOP_REGNUM, (char *) &l); } >From ac131313@cygnus.com Mon Dec 13 21:55:00 1999 From: Andrew Cagney To: Raymond Toy Cc: gdb@sourceware.cygnus.com Subject: Re: Sparc V9 disassembly? Date: Mon, 13 Dec 1999 21:55:00 -0000 Message-id: <3855DB8F.8EC29AB3@cygnus.com> References: <14421.15563.476881.755513@rtp.ericsson.se> X-SW-Source: 1999-q4/msg00498.html Content-length: 869 Raymond Toy wrote: > > I've just joined this list so if this question has been asked, forgive > me. I looked at the recent mailing list archives and didn't see > anything obvious. > > I'm trying to debug some Sparc v9 code and gdb's disassembler doesn't > want to print out the new v9 instructions. Before trying the > disassembly, I gave the following commands to gdb (version 4.18): > > info archi > set archi sparc:v9a > disassemble > > It seems the bug is in gdb_print_insn_sparc. It sets info->mach to > TM_PRINT_INSN_MACH, which is the sparc/sparclite. If I use gdb to > change this to 8 (sparc v9?), the disassembler recognizes the v9 > instructions. > > Is this correct behavior? I'd try it with the current GDB however, I suspect that SPARC GDB currently ignores requests to change the architecture via ``set architecture''. Andrew >From rodneybrown@pmsc.com Mon Dec 13 23:14:00 1999 From: "Brown, Rodney" To: "'gdb@sourceware.cygnus.com'" Subject: 19991207 testresults for various platforms Date: Mon, 13 Dec 1999 23:14:00 -0000 Message-id: <9150F3E779F0D211BD370008C733141C38AA37@aus-msg-02.au.pmsc.com> X-SW-Source: 1999-q4/msg00499.html Content-type: multipart/mixed; boundary="----------=_1583534237-23283-1" This is a multi-part message in MIME format... ------------=_1583534237-23283-1 Content-length: 5585 Title: 19991207 testresults for various platforms                 === gdb Summary === # egcs-2.91.66 19990314 (egcs-1.1.2 release) # of expected passes            5987 # of unexpected failures        303 # of unexpected successes       1 # of expected failures          199 # of unresolved testcases       5 # of unsupported tests          1 /user/rand/rdb/src/gdb-19991207.obj/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: alpha-dec-osf4.0e configure flags: --host=alpha-dec-osf4.0e --norecursion Counting all warnings, there are 1776 warnings in stage0 of this bootstrap. --                 === gdb Summary === # cc -std # of expected passes            6164 # of unexpected failures        117 # of unexpected successes       1 # of expected failures          199 # of unresolved testcases       5 # of unsupported tests          1 /user/rand/rdb/src/gdb-19991207.obj.v/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: alpha-dec-osf4.0e configure flags: --host=alpha-dec-osf4.0e --norecursion Counting all warnings, there are 2 warnings in stage0 of this bootstrap. --                 === gdb Summary === # egcs-2.91.57 19980901 (egcs-1.1 release) # of expected passes            6445 # of unexpected failures        267 # of unexpected successes       4 # of expected failures          207 # of unresolved testcases       33 # of unsupported tests          1 /devel/span/rdb/src/gdb-19991207.obj/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: hppa2.0-hp-hpux10.20 configure flags: --host=hppa2.0-hp-hpux10.20 --norecursion Counting all warnings, there are 1682 warnings in stage0 of this bootstrap. --                 === gdb Summary === # cc -Ae # of expected passes            6543 # of unexpected failures        263 # of unexpected successes       3 # of expected failures          207 # of unresolved testcases       20 # of unsupported tests          1 /devel/span/rdb/src/gdb-19991207.obj.v/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: hppa2.0-hp-hpux10.20 configure flags: --host=hppa2.0-hp-hpux10.20 --norecursion --                 === gdb Summary === # gcc version 2.95.2 19991024 (release) # of expected passes            5763 # of unexpected failures        117 # of unexpected successes       5 # of expected failures          228 # of unresolved testcases       3 # of unsupported tests          1 /devel/src/gdb-19991207.obj/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: i586-pc-sysv4.2uw configure flags: --host=i586-pc-unixware7 --norecursion Counting all warnings, there are 1503 warnings in stage0 of this bootstrap. --                 === gdb Summary === # cc # of expected passes            5759 # of unexpected failures        120 # of unexpected successes       5 # of expected failures          228 # of unresolved testcases       4 # of unsupported tests          1 /devel/src/gdb-19991207.obj.v/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: i586-pc-sysv4.2uw configure flags: --host=i586-pc-unixware7 --norecursion Counting all warnings, there are 0 warnings in stage0 of this bootstrap. --                 === gdb Summary === # egcs-2.91.66 (egcs-1.1.2 release) # of expected passes            5939 # of unexpected failures        345 # of unexpected successes       22 # of expected failures          220 # of unresolved testcases       6 /devel/tmp/gdb-19991207.obj/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: rs6000-ibm-aix4.2.0.0 configure flags: --host=rs6000-ibm-aix4.2.0.0 --norecursion Counting all warnings, there are 1305 warnings in stage0 of this bootstrap. --                 === gdb Summary === # xlc # of expected passes            5939 # of unexpected failures        345 # of unexpected successes       22 # of expected failures          220 # of unresolved testcases       6 /devel/tmp/gdb-19991207.obj.v/gdb/testsuite/../../gdb/gdb version  19991207 -nx Compiler version: 19991207 -nx gdb Platform: rs6000-ibm-aix4.2.0.0 configure flags: --host=rs6000-ibm-aix4.2.0.0 --norecursion Counting all warnings, there are 4 warnings in stage0 of this bootstrap. --                 === gdb Summary === # egcs-2.91.66 19990314 (egcs-1.1.2 release) # of expected passes            4289 # of unexpected failures        240 # of unexpected successes       1 # of expected failures          110 # of unresolved testcases       46 # of unsupported tests          1 /devel/src/gdb-19991207.obj/gdb/testsuite/../../gdb/gdb version  -nx Compiler version: -nx gdb Platform: sparc-sun-solaris2.5.1 configure flags: --host=sparc-sun-solaris2.5.1 --norecursion Counting all warnings, there are 1412 warnings in stage0 of this bootstrap. Full testresult summaries enclosed   gdb-19991207.testresults.tar.bz2 ------------=_1583534237-23283-1 Content-Type: application/x-bzip2; charset=binary; name="gdb-19991207.testresults.tar.bz2" Content-Disposition: inline; filename="gdb-19991207.testresults.tar.bz2" Content-Transfer-Encoding: base64 Content-Length: 19781 QlpoOTFBWSZTWb14wLgAiNT/7tAwACF////////fz/////4ACBAAIAAAgQEA AAhgW/57zyH2QomxrLWnhHQUQ6BjCHL13t0eJoB116NDmwroPcw72A6AnWoA 4ndbe2namEXbeA9G5AeDGS7AHR1puWnNtDXJ7t7vd7OLtsmWrbQV0EBlT2xb e4a9dHGgDRRXhaOgGQBQUm2lUqe2KaxJIIkVs0VVKkBVUKChSutUoqqUkEqB RBsaKFBNMFKCpAkSCSgpAaxVEhSkFQGS2KBUqVIFUyyoIsOABoDQNAA00yAA 0aZABoyYIDEAACU0ENRBMmgptNSmelH6amhqMIyM1DQAGIBpppo0aaYSCiJM hpqU3o1TzKn6Tyap6TxJ6IAGjymgGg2oANBoAJT9VKE0EnoyjRoA0AAAAAAA AAAAAKUkIEAI0ICZCbSTaT0mKYTymNJ6nlHkho9NJpibUD0BUUQQEATEAUxq aaamptJpN6p5Gp6h6htQ00HqNNAaGmj+eN/+n9r+ljLX1Rjdn9UaNZlRnNVT vpfZ9/3M/Ntt+PEcpMjKVkf7ouiMvMmIkpmRkyTLL48rZZXyc25fXrZs/Lhq x8lvyIPH8b52ayDbZXeNB7OLRHu+4BlBRBliEH9XGnnybGG3+hi3ueGrqgNR iSWwd0qNYw3fwZ1Dy5gZhtIQJCaTPHHqp4YBhsotaqodmw4AYSSVaqBmYlNe HGDCZluC2haY11mQK0SkSArEBG90SUaSI0MajAekGMHo5ZOJXVNtERtXo6fE dJwQXHpHjqp35jA4V+luZGsaemam1FGcob2kG8k7zV5ouaRVqNCOFroHzGAe 0mbL5XayZotzl55JreV23whyscvKHIcttEbZuV7f9RwwHsPUsBFjiKHIEQIH HBxxGhB2K6GfcFGirFo/LluolJ2EaIHk/Ky97TVarsYcysKYVhXsxZ/saMZ3 22dr4sPFXNWGqsve0aNney2aFrRlhydrCGSlVJVkDW8lkGVkDvVJNKwsyns9 E7mjLmwbPZlkQqoA0CBux7BDyiyDY9SSg+I7jAES5+atFo1bjkcv8LrvhsnN 5NTCqYVPQZVMtDE9n6o4mjD/6TCu935e1HrTZuZ46OrtNnJH4RNtGyVRwUwa b61yOrL3KcHaCM84b0Qmn4iJ0Z9OIxhZ8Nl3CKqorZ/jmkXxzjNFSeAhpFyE NsI8ggLLMFEmUJ0bykMmBc6NEYS+E9Z+UPiPwn4vb1j5DjOHKMXMO5h2O9j6 6jDRho2PFs97k4ODDyfm9XVl+b3vxfV4Gyna6MO9hO1l1YV9mrQ3dHR8nV1d X5ODwP9h+p9GTtVKw+favgnB6PZ7P5hBIIkkcgoR1bzjv4wiVTCpzC14fmIB p1dr2U2SsK6uSnDfCR0900mKVSqDGIbSnktOTY223NwdIeTwmBuKSJQkbkbi GwFCDcJIicxY27I3BcaaNGGrJJz41s5WKpVKsi1Mc9OdtttcYv1QwMWm3rh8 pk0uUxgZhjDo6fU57ZWgoPMwYGpkwZPE0KdpTQ2OJTIQMhuCBqB81+dN45tt JZhvJI+1B8qD3QfxhYd5xPxezk+rq8zV8HkqlehhhxYYVWfSe57MvNxfzq9P 7B/GH+NHJD6Q91L2jI8oylwj3pIyMKL6thVoru/D7thm37n6sbhcxziWimJG ZGVZUMVkTKZSzIt+/v112zWuHAnzH+cyn8K+kfU92PzjGnB/xYnY0Mtz2WP7 kN8tTZ8WkMtFNFe0/WVP3zj+2H22ftx3ftdC9yDDlOL6vg/dT8jZD/W7I3Qj knY4p9HxtuP7tUiPF3KrcZ7i4e4g0G2Q8SunAh4+NjJQeAQD/sedTtw7fPyN z2NWXmpkJorRloplEf8ila9jvd7g3ZVlg5Ky8WjtZbsMK+TDuejR3tFfuc2z Jq1bOj6NGz9GjKuxg1ZMvRwZVqwclMGWrRoYZZYaOx7PJucnBh/Yrg4HNkyc 2GHBhu2YOamXg8W5q1DlEDmDiScSzRg0ZOJ1LHJOZ0PmMjknZ1d7tbPt8PHq /993s4n8n8nm/QrL8D3PJ2yuMvGPskknxPY+3Hl7nxcGFbPxBvy0OtB02elt xz2dYd2c4xzV93Ser1fnuHGjn6w2fnG4B7WXXb5vfDEtMbYahCkhvf3ZbGEC 1EEGcL59M+GCsMOAlGU6HTJZxMVgZ2whFyyKdISuZljDFMSGDIZ0i9NlJjLC Y0J0+mQgs1YZpUwnMsU2lpjFU0MRDEsUw4sIpWZNi101kRhFRVXqsOIwhxMW pq6xNPK0Yh5y7mjURjDGWIYTFkodi2JHaBNLWqGcLYwMO0ogy2SsPZQsUtEt q0+cvTEsaYoSExeh8aYeiWpnVEtTMsoZGJTmJzDaEws5FRA5WqpsJyZd9S1p 9J0O7GYCWIMBpyEwhBVIMVmxLOsaYywmlJjQBAWw4PLGALMFI8g/o/p+0UcL RatWwwuKtWrYZvYcHXax0VvpjLnjppr1vG3PD/FD+j09Sxfn4Hh4eD2h8j6O A4v3vucvj8ohL9XXM5WTQsPqP2CijlOrvq4amqRQ3Bt4cCSFAtpQtpJCgW0o S0khQLaULaOQoEtKEtKFtKEtKFtPewFxgoW0oS0oW00QGQ5gihAgDGzhYOg0 2wVhBOOCO0ziM4xDiVPg956MjqPsPNPs6PcnfvIR/NTh34Q7PR6KqqqqUpT0 nenD9ns4Sc5+Flk88wLeyWds7Nvbu1RDHV1TGeNkmYUqFWFsKz9mvF7/Imm0 kHjydF3/0f4nKPE3+zM87edx18GyjustncrVN2Utm1NZsw1Fs0tU8t2qN263 tGkRo0TYT6Pf9ftVq1bC47+ujPWHrH9FhFlvytUvFur2oAkHJcW5ELYXj4Hw 7Y+2k1+cNo2H1fV8ysmB6MsivhEHoCgYPAnr0oILnwde5PSLVQHaiKFyljId Pd3UpprXnsx2xn2fCmN6rCjfhhjzY7Aeqft7dkvn9X7MO8nos83R/mST2aaH 47laKoAQDs7Wg7y4K3W6zhuyueuXjt1WxxZYTSMcDVPPgMnd5deEXR/Bzkxz cB/ojmaNnL+Dl000cSbON7LGMMIdxwxLFKeb3uTiaRzTY5J6uSc3i1atVVqV WpyOHBaNjWLQxE+bc5T0KdNg+Bj231T/NuubtfesHa5OwxLBfCanWMMVswvF dRu2qMXicLby+zPDoTk8k+qOSv4mhjTLDRxEYcnwNHVq8Xe7Pp6fg6pxcB/c mjM7mivMUy+CqqtDVqS1qujc9nLdOdTgAAA1cG+5s2dz4fadO/4+5ycnRMOx JWXXu9VYSRPZSNGr3neNOA6HQ0DxbtX4JPyXL79vJnhY7fm7TXMcs4R3NJsK 5TuaHg1e6ehk0N1OSZqanXw6Joc23Fzd8ew7SOw8fn0ybPs+VZOTT6HE6odr t3jxO6stW7Dzaobf6NuWxxGqcikckVTV820PcaKYRu5aFbpDdWnMwmxvDZqN X2fbX4/1PMrff8I6vF0T4ztbztfCLjqZjZNWrSfSMtiA7D+pTFMdToUcgphe DEBjpNBnqaJCT6qqrHyflD/JDL9YfdYZh7giDxWJQd69nY2VsPqOq3nyXrqv xc3Ns2VVVVVVbGji8WGXjlll6YxZs1XaeUz5/KPt2HQHj2C6jvYKfIbw5alT vHzhkIcDfuNzB8x4fk9MzoPdHRhiO5wNj8ZoZNlPB6kOZDCSMybt2zQz8PHi UvSTVhxVVMO3rLZMzbHHlNh+biR0nqW+P2mTdV3T3bXc9O9d5+q/XnIvR9o0 dR2Tpw2jgeDLd6O01YbPNXFo7DLLkknHuVh3MHVxho0jRoyYFOZZ3GSYJ+Fj 8GZVnVI39e8fRudGvbwX1JOEjg6Gnvnnf1n1z8jWHL6O5O1ZE9Y9Ukvd3eqd 8fDu7Ph8/D93j9v6Lu7u7u7u7u7uZiLu9ZzrOc5vWtau7u7u7u7u7u7u7u7u 7u7u7u7u75t3gkCRQhj8Ht5+i8l7WT8jKvssfkjLedXJk2Zdzd3DlSYsmqE3 D5G44ND8FYMpgfolrGgmjSaHJx9U+fw4FfRgfJzJiMJGW4mRNNEPxWJJDdZm 2/N1jI+piHt7e2OLV2jqdxy5J2h34Xu/i7R9nL8dpdEmXV0OHwcSbGKMbtDT TTTTUmmmj4UyyqsSeQpVJKVUyyzJ2sqUwMEqUqVEJFENJMpBJBCEIdHBq1VV V6MObKujDKqsFKkRvkqG/geQ82zvc0Gxhno4tNHGSDD+nZs8jjtI8HG+tYuM hlDucjxdvv/wO+ZsvYcXLv49wPyNXYrR4v2qzA7SFNCuXI9jKd57zDcrZT1m rClGUrM6NLLMzbS2Vx6AADjq7G1n0p7tPI00hdx0nmMZdD1npOTgZi/qfVZt f28404vgfc0pP2Or8efxeLTe1cjUVq4toYZO3u110YKb8mg8/r+M3J7qItiq HB6Kr0MHXyIeZlFN29tW3k/L87ppb3w1+Tsv0jPeQ83RPKOLxik7laP2Mbnc oDVk7Cq+cMPm0bejkcACY6J57yZ6MzfnLwPGZJJIed6yaaeMd4pMaw7tfDbF Ph3d3dPsmnGtGk+8pOGWCCy+QSw0dmni7kHQwO6PTL0/fwHeTQpOZuZMilDk YQ1lTBR1MJhklnSRsMkn/Zt3m2jBdTPdq1VrOjYWYMHmYPBwYODmwkfE0KKM GXt9XHj2tzycXd/HTEaK6T6dNff+ZtHf6ekdXYPi6z2Q6R0iZh7He8TO0Now xU6GJMHieamE+uvb9sPTv/V2zgKRyj6u/L4ydiGyJQbRfP1noek8LxzsqPj4 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 wvt0j03MIznETjrBsDN5sEENBP5zxPFy6dz2o+76OtH6alcowipz9Oc3kuBl F/AtTEfG+k3K+M4TWTpLU+kxbTBk9hkzrNUbQoyrdK11Ou82yYRksWJnDScJ sUjWZOEun/b4mMGWWfbXIuSanX03WreaGE+upYTv5TU8ZwbbTSyHa8MMwzDM GedKU2nwo84qbRiStPvzGM0qbp1MMzMmdC1fVUGPDL9T7fp02NeM4TCp0ap8 Gq6eW2rfgACRsy3WXUmWrFlus0WpocTgrkrmNxyrjlVqYmKaJpOFWJgtrlL0 ricTc0mpvk7s5VJwnrsmnjMRbbTRLLEvapOab5W21bcxwCKSeJpsjMmMMVMR dmGYVqrU6m0Q1MlcDbmqs3azOhYwAAmIstlVwLJqrLJkyNpzqVttMm01NWJy anx9zMTYS2nVOJoyjKtTKXeQSsRlx2h3vN98e+zTSPVX7s6v8ujEloq7+H0s BZgXuyNDFqUoJ3PeEkt7HBxSh0AGEMCdwBJccFFsRNZ8Ps/Dnk5gZ0xfBoV/ FWD9VN9tOnTp06bOCo/pYnilMv5IwJ/9U79Jhd6tOTDyx4nU060luMDuUM72 vFc8VsT/M74mUdqzavHyw8Ycdc6WjXYy0W2b7MUSrJEkjHGGTxuTKtAJJMqA JJbNZVoBJJlUASSrt+XK38e7q7afLT+Rw7OrlT+L6s1r/R9R26//Do5vd4g2 v4kaBnQ+47uLkeDh2HBw6jaMdjjg5/lhbJaow6bTIxy2rTCgpt1WlGxWs4MZ eErSMaMlmli0tLZLZaXAwUv0hWC2dmPurvK6t8TXbjx9Pf7vbv4uhe5UcbOm rTIPMykfqnkTCavBxVW75Eue/v6d/f39/f18SOkjec0dGTQPolH0DZpGDz6O U4XzfrxcLuq4ewOKLfuO/4OAfm/Q9vhzYs/SuFM45MncKCe+QQAdD+78H8H5 Pxn5Pox9W7DzEB7UNAAeg3eeR28ivBAkycATrwPhYzIQ3u32YM5QaE2qWobV vSSQJT61+powqlh++nKl4fitZhmi1y6GEzVpdWPghWbKq3K4p74GgggjB3QP 2OUi0bcPILuNMJZabyNNaejYHrUqn6jR5p81/kW6XkvXq8HBwSfoUrD2V+sF 5XSbw8IcXnxjaOCsXSWGUbVpUZFN9qtKKMbW50xAwxNg7aitVolPAVHIMyGm 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 3JFOFCQvXjAuAA== ------------=_1583534237-23283-1-- >From ac131313@cygnus.com Mon Dec 13 23:26:00 1999 From: Andrew Cagney To: Quality Quorum Cc: gdb@sourceware.cygnus.com Subject: Re: remote nits Date: Mon, 13 Dec 1999 23:26:00 -0000 Message-id: <3855F0D8.12905961@cygnus.com> References: X-SW-Source: 1999-q4/msg00500.html Content-length: 2206 Quality Quorum wrote: > > Hi, > > I found more remote nits reading manual on the net and > gdb-19990913/gdb/remote.c . Below is summary. > > A. Handling of Depreciated Elements > > It seems to me that debugger should never emit > depreciated requests. 'qL' request is marked > as depreciated in the document, however, there is > code which will emit it. Its important to apreciate how GDB needs to continue to support existing targets. While we don't want anyone to use QL (and wish it was replaced with something better) that doesn't mean that it is reasonable to simply pull that code. People in the field need to be given several years notice and the chance to migrate to something better. it. Much of the thread code is in this situtation. > C. Requests Violating Protocol Principles > It seems to me that '!' is not that bad. At least one > popular implementation I saw (gdbserver) will report last status > in response to '!'. It seems that a low pain way to deal > with it is to have local variable, say 'remoteforceextended'. > If this variable is set then any response to '!' is considered > a success, otherwise "" means no support, "OK" or status string > mean support, everything else considered an error. You may want to study gdbserver more closely. The thing that it does is change GDB servers behaviour. Strictly speaking both of those should be controlled through ``[Qq]'' packets and ``!'' should be given the boot. > It seems to me that 'D' could be depreciated: we can use 'c' > followed by connection close instead - 'c' supposed to have exactly > same effect and is required to be implemented. Another way is > to define new detach request which will require stub to send > reply before disconnecting. There is a good chance that nothing uses it. However, what mechanism are you proposing that will allow GDB to disconnect from one target programme and then connect to a second? > It is unclear from document that 'qRcmd' indeed allows responses > starting from 'E', however there is a code handling this case > in remote.c The normal response to Rcmd is a HEX encoded byte-stream. E is a hex digit. Andrew >From rodneybrown@pmsc.com Mon Dec 13 23:46:00 1999 From: "Brown, Rodney" To: "'gdb@sourceware.cygnus.com'" Subject: 19991207 snapshot build failure on CygWin Date: Mon, 13 Dec 1999 23:46:00 -0000 Message-id: <9150F3E779F0D211BD370008C733141C38AA38@aus-msg-02.au.pmsc.com> X-SW-Source: 1999-q4/msg00501.html Content-length: 1429 Title: 19991207 snapshot build failure on CygWin gcc -c -g -O2 -W -Wall    -I. -I../../gdb-19991207/gdb -I../../gdb-19991207/gdb/config -DHAVE_CONFIG_H -I../../gdb-19991207/gdb/../include/opcode -I../../gdb-19991207/gdb/../readline/.. -I../bfd -I../../gdb-19991207/gdb/../bfd  -I../../gdb-19991207/gdb/../include -I../intl -I../../gdb-19991207/gdb/../intl -I../../gdb-19991207/gdb/tui    ../../gdb-19991207/gdb/win32-nat.c ../../gdb-19991207/gdb/win32-nat.c:43: imagehlp.h: No such file or directory ../../gdb-19991207/gdb/win32-nat.c:335: psapi.h: No such file or directory make[1]: *** [win32-nat.o] Error 1 make: *** [all-gdb] Error 2 CYGWIN_NT-4.0 PC1071 20.1 (0.3/1/1) 1998-12-3 20:39:18 i686 unknown Pan Chinese NT 4 Service Pack 3 Reading specs from C:\cygnus\CYGWIN~1\H-I586~1\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2.91.57\specs gcc version egcs-2.91.57 19980901 (egcs-1.1 release) Reference to these include files have been added since 19991116 - which built cleanly. Are they new headers that should have been introduced? Attempting to run the testsuite using the dejagnu-19991115 snapshot got hung up. The last reference in gdb/testsuite/gdb.log is to (gdb) PASS: gdb.base/call-ar-st.exp: continue to 1305 Since I was able to kill the processes when run foregrounded by Ctl-C-ing out & backgrounded by closing the Shell window, it's hard to know if this is pointing near the offending area.