From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8622 invoked by alias); 15 Dec 2008 21:47:51 -0000 Received: (qmail 8613 invoked by uid 22791); 15 Dec 2008 21:47:50 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 15 Dec 2008 21:47:15 +0000 Received: from spaceape14.eur.corp.google.com (spaceape14.eur.corp.google.com [172.28.16.148]) by smtp-out.google.com with ESMTP id mBFLlC8t015918 for ; Mon, 15 Dec 2008 13:47:12 -0800 Received: from ewy13 (ewy13.prod.google.com [10.241.103.13]) by spaceape14.eur.corp.google.com with ESMTP id mBFLlANC021417 for ; Mon, 15 Dec 2008 13:47:10 -0800 Received: by ewy13 with SMTP id 13so3975113ewy.6 for ; Mon, 15 Dec 2008 13:47:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.210.125.13 with SMTP id x13mr5080866ebc.69.1229377630198; Mon, 15 Dec 2008 13:47:10 -0800 (PST) In-Reply-To: <20081215085833.GL6866@adacore.com> References: <8ac60eac0812081842l6ac5344fw2fd57011d3dfef42@mail.gmail.com> <20081210111322.GC20054@adacore.com> <8ac60eac0812100758i586c66eak533680a6eb07459c@mail.gmail.com> <8ac60eac0812101520x76366795ieea6afb6d48fb129@mail.gmail.com> <8ac60eac0812111601v20566268h6f7977c71e5b8a8f@mail.gmail.com> <8ac60eac0812111603r68ffa49exd7cb0ce403d07310@mail.gmail.com> <20081213160110.GF6866@adacore.com> <8ac60eac0812131017l6eec4bf9r1a9fedf3e68bc6bb@mail.gmail.com> <20081215085833.GL6866@adacore.com> Date: Mon, 15 Dec 2008 21:47:00 -0000 Message-ID: <8ac60eac0812151347n98f0249mf5ac2ab6ef7543cc@mail.gmail.com> Subject: Re: [patch] Fix a glitch in debugging 32-bit process with 64-bit GDB. From: Paul Pluzhnikov To: Joel Brobecker Cc: Andreas Schwab , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0015174c3f5cf15d6d045e1cc808 X-IsSubscribed: yes 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 X-SW-Source: 2008-12/txt/msg00292.txt.bz2 --0015174c3f5cf15d6d045e1cc808 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 1174 On Mon, Dec 15, 2008 at 12:58 AM, Joel Brobecker wrote: > I'd like to see the comment detail a little the situation that we are > trying to solve (64bit gdb debugging a 32bit app). Just as a starting > point, I suggest for instance: > > if (sizeof (nlist.n_value) > 4) > /* We are a 64bit debugger debugging a 32bit program. > We have to be a little careful with the n_value in the case > of N_LSYM and N_PSYM entries, because they are signed offsets > that we actually read as an unsigned 32bit value. This is > not a problem with 32bit debuggers where negative values end > up being interpreted correctly. But we need to sign-extend > the sign bit on 64bit debuggers. Otherwise, we'll end up > interpreting negative values as very large positive values... */ > if (type == N_LSYM || type == N_PSYM) > nlist.n_value = (nlist.n_value ^ 0x80000000) - 0x80000000; Thanks, I slightly re-worded this. OK to commit? -- Paul Pluzhnikov 2008-12-15 Paul Pluzhnikov * dbxread.c (read_ofile_symtab): Sign-extend 32-bit N_LSYM and N_PSYM STABS values for 64-bit GDB. --0015174c3f5cf15d6d045e1cc808 Content-Type: text/plain; charset=US-ASCII; name="gdb-1526195-20081215.txt" Content-Disposition: attachment; filename="gdb-1526195-20081215.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fornmw1x0 Content-length: 1578 SW5kZXg6IGRieHJlYWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2RieHJlYWQuYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS45OApkaWZmIC11IC1yMS45OCBkYnhyZWFkLmMKLS0tIGRi eHJlYWQuYwkxIE9jdCAyMDA4IDE2OjQxOjI3IC0wMDAwCTEuOTgKKysrIGRi eHJlYWQuYwkxNSBEZWMgMjAwOCAyMTo0Mjo0MSAtMDAwMApAQCAtMjU5Nyw2 ICsyNTk3LDE5IEBACiAKICAgICAgIGlmICh0eXBlICYgTl9TVEFCKQogCXsK KwkgIGlmIChzaXplb2YgKG5saXN0Lm5fdmFsdWUpID4gNAorCSAgICAgIC8q IFdlIGFyZSBhIDY0LWJpdCBkZWJ1Z2dlciBkZWJ1Z2dpbmcgYSAzMi1iaXQg cHJvZ3JhbS4gICovCisJICAgICAgJiYgKHR5cGUgPT0gTl9MU1lNIHx8IHR5 cGUgPT0gTl9QU1lNKSkKKwkgICAgICAvKiBXZSBoYXZlIHRvIGJlIGNhcmVm dWwgd2l0aCB0aGUgbl92YWx1ZSBpbiB0aGUgY2FzZSBvZiBOX0xTWU0KKwkJ IGFuZCBOX1BTWU0gZW50cmllcywgYmVjYXVzZSB0aGV5IGFyZSBzaWduZWQg b2Zmc2V0cyBmcm9tIGZyYW1lCisJCSBwb2ludGVyLCBidXQgd2UgYWN0dWFs bHkgcmVhZCB0aGVtIGFzIHVuc2lnbmVkIDMyLWJpdCB2YWx1ZXMuCisJCSBU aGlzIGlzIG5vdCBhIHByb2JsZW0gZm9yIDMyLWJpdCBkZWJ1Z2dlcnMsIGZv ciB3aGljaCBuZWdhdGl2ZQorCQkgdmFsdWVzIGVuZCB1cCBiZWluZyBpbnRl cnByZXRlZCBjb3JyZWN0bHkgKGFzIG5lZ2F0aXZlCisJCSBvZmZzZXRzKSBk dWUgdG8gaW50ZWdlciBvdmVyZmxvdy4KKwkJIEJ1dCB3ZSBuZWVkIHRvIHNp Z24tZXh0ZW5kIHRoZSB2YWx1ZSBmb3IgNjQtYml0IGRlYnVnZ2VycywKKwkJ IG9yIHdlJ2xsIGVuZCB1cCBpbnRlcnByZXRpbmcgbmVnYXRpdmUgdmFsdWVz IGFzIHZlcnkgbGFyZ2UKKwkJIHBvc2l0aXZlIG9mZnNldHMuICAqLworCSAg ICBubGlzdC5uX3ZhbHVlID0gKG5saXN0Lm5fdmFsdWUgXiAweDgwMDAwMDAw KSAtIDB4ODAwMDAwMDA7CiAJICBwcm9jZXNzX29uZV9zeW1ib2wgKHR5cGUs IG5saXN0Lm5fZGVzYywgbmxpc3Qubl92YWx1ZSwKIAkJCSAgICAgIG5hbWVz dHJpbmcsIHNlY3Rpb25fb2Zmc2V0cywgb2JqZmlsZSk7CiAJfQo= --0015174c3f5cf15d6d045e1cc808--