From owner-freebsd-mips@FreeBSD.ORG Wed May 26 22:27:25 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAD7E106566B for ; Wed, 26 May 2010 22:27:25 +0000 (UTC) (envelope-from phcoder@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.154]) by mx1.freebsd.org (Postfix) with ESMTP id 322548FC1F for ; Wed, 26 May 2010 22:27:24 +0000 (UTC) Received: by fg-out-1718.google.com with SMTP id d23so222244fga.13 for ; Wed, 26 May 2010 15:27:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:x-enigmail-version:content-type; bh=aW00YQYsL2wW5CLuIllwgG9/tUjiJRLlzYqYuXmcMm0=; b=phaPoDCQ3NI5166DzvjPT4Clcz5A24DCf3olncsX69QoqAUZUFNaG7qZewI/LYJXXr bMqIiAhOIzNz8PJhkQ7uENmpH+vD/AF9NLZ2W1Ot0M24rkT/ZH7yzEQcDUo3Dazt2f5P 2NSzMDpC1sJiC1olLRFPPMQLXSn8yTupXv0jw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :x-enigmail-version:content-type; b=UOUHBu/LcLB+2Ck2+uBI92qaqo9w08iDPUsQT81P03aYJNCVZV1vrWyogXknpKjkMF j7NA0szz/Dto0SKkLjNdbwksXrQuCYbHs7iXGWRqRv1paWQSzCnlcQ4xbgH8pabAwDtZ NV56kSfRaHIRP2IL9II7DWRARitAUT33qK3ts= Received: by 10.204.29.18 with SMTP id o18mr1524961bkc.179.1274912844102; Wed, 26 May 2010 15:27:24 -0700 (PDT) Received: from debian.bg45.phnet (gprs11.swisscom-mobile.ch [193.247.250.11]) by mx.google.com with ESMTPS id h21sm2375050bkh.23.2010.05.26.15.27.19 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 26 May 2010 15:27:23 -0700 (PDT) Message-ID: <4BFDA036.7080502@gmail.com> Date: Thu, 27 May 2010 00:27:02 +0200 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20091109) MIME-Version: 1.0 To: freebsd-mips@freebsd.org X-Enigmail-Version: 0.95.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enigD727110BCA27BDBB1AB618B8" Subject: Fix mips64 ddb backtracing X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2010 22:27:25 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigD727110BCA27BDBB1AB618B8 This is a multi-part message in MIME format. --------------080906000803010207060400 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I've come accross this issue when coding for yeeloong. It's easy to fix (patch attached). After applying the patch I had the session with debugger as in attached capture file. Can this patch go directly to -current ? --=20 Regards Vladimir '=CF=86-coder/phcoder' Serbinenko --------------080906000803010207060400 Content-Type: text/x-diff; name="mips64_bt.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="mips64_bt.diff" =3D=3D=3D modified file 'mips/mips/db_trace.c' --- mips/mips/db_trace.c 2010-05-26 07:47:16 +0000 +++ mips/mips/db_trace.c 2010-05-26 22:19:06 +0000 @@ -49,9 +49,19 @@ #define MIPS_END_OF_FUNCTION(ins) ((ins) =3D=3D 0x03e00008) =20 /* - * kdbpeekD(addr) - skip one word starting at 'addr', then read the seco= nd word + * kdbpeekD(addr) - read double word. */ -#define kdbpeekD(addr) kdbpeek(((int *)(addr)) + 1) + +static inline register_t +kdbpeekD (uintptr_t addr) { +#ifdef __MIPSEL__ + return ((register_t) kdbpeek ((int *) addr)) + | (((register_t) kdbpeek ((int *) addr + 1)) << 32); +#else + return ((register_t) kdbpeek ((int *) addr + 1)) + | (((register_t) kdbpeek ((int *) addr)) << 32); +#endif +} =20 /* * Functions ``special'' enough to print by name @@ -140,7 +150,7 @@ } /* check for bad SP: could foul up next frame */ /*XXX MIPS64 bad: this hard-coded SP is lame */ - if (sp & 3 || sp < 0x80000000) { + if (sp & 3 || (uintptr_t) sp < 0xffffffff80000000ULL) { (*printfn) ("SP 0x%x: not in kernel\n", sp); ra =3D 0; subr =3D 0; @@ -181,7 +191,7 @@ } /* check for bad PC */ /*XXX MIPS64 bad: These hard coded constants are lame */ - if (pc & 3 || pc < (uintptr_t)0x80000000) { + if (pc & 3 || (uintptr_t)pc < 0xffffffff80000000ULL) { (*printfn) ("PC 0x%x: not in kernel\n", pc); ra =3D 0; goto done; @@ -303,32 +313,34 @@ mask |=3D (1 << i.IType.rt); switch (i.IType.rt) { case 4:/* a0 */ - args[0] =3D kdbpeekD((int *)(sp + (short)i.IType.imm)); + args[0] =3D kdbpeekD(sp + (short)i.IType.imm); valid_args[0] =3D 1; break; =20 case 5:/* a1 */ - args[1] =3D kdbpeekD((int *)(sp + (short)i.IType.imm)); + args[1] =3D kdbpeekD(sp + (short)i.IType.imm); valid_args[1] =3D 1; break; =20 case 6:/* a2 */ - args[2] =3D kdbpeekD((int *)(sp + (short)i.IType.imm)); + args[2] =3D kdbpeekD(sp + (short)i.IType.imm); valid_args[2] =3D 1; break; =20 case 7:/* a3 */ - args[3] =3D kdbpeekD((int *)(sp + (short)i.IType.imm)); + args[3] =3D kdbpeekD(sp + (short)i.IType.imm); valid_args[3] =3D 1; break; =20 case 31: /* ra */ - ra =3D kdbpeekD((int *)(sp + (short)i.IType.imm)); + ra =3D kdbpeekD(sp + (short)i.IType.imm); } break; =20 case OP_ADDI: case OP_ADDIU: + case OP_DADDIU: + case OP_DADDI: /* look for stack pointer adjustment */ if (i.IType.rs !=3D 29 || i.IType.rt !=3D 29) break; @@ -337,17 +349,18 @@ } =20 done: - (*printfn) ("%s+%x (", fn_name(subr), pc - subr); + (*printfn) ("%s+%lx (", fn_name(subr), (unsigned long) (pc - subr)); for (j =3D 0; j < 4; j ++) { if (j > 0) (*printfn)(","); if (valid_args[j]) - (*printfn)("%x", args[j]); + (*printfn)("%lx", (unsigned long) args[j]); else (*printfn)("?"); } =20 - (*printfn) (") ra %x sp %x sz %d\n", ra, sp, stksize); + (*printfn) (") ra %lx sp %lx sz %ld\n", (unsigned long) ra, + (unsigned long) sp, (long) stksize); =20 if (ra) { if (pc =3D=3D ra && stksize =3D=3D 0) --------------080906000803010207060400 Content-Type: application/cap; name="capthu.cap" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="capthu.cap" R1JVQiBDUzU1MzYgYXQgMDAwMDAyMDBTTUJ1cyBjb250cm9sbGVyIGVuYWJsZWQuCjAwMDAw MDgwQ2FjaGVzIGVuYWJsZWQKV2VsY29tZSB0byBHUlVCIQoKZXJyb3I6IG5vIGRldmljZSBj b25uZWN0ZWQuCmVycm9yOiBubyBkZXZpY2UgY29ubmVjdGVkLgpHTlUgR1JVQiAgdmVyc2lv biAxLjk4CgogICBNaW5pbWFsIEJBU0gtbGlrZSBsaW5lIGVkaXRpbmcgaXMgc3VwcG9ydGVk LiBGb3IgdGhlIGZpcnN0IHdvcmQsIFRBQgogICBsaXN0cyBwb3NzaWJsZSBjb21tYW5kIGNv bXBsZXRpb25zLiBBbnl3aGVyZSBlbHNlIFRBQiBsaXN0cyBwb3NzaWJsZQogICBkZXZpY2Ug b3IgZmlsZSBjb21wbGV0aW9ucy4gCgoKCgoKZ3J1Yj4gbXVsdGlib290MiAodXNiMCxtc2Rv czEpL2tlcm5lbApncnViPiBib290CmVudHJ5OiBtaXBzX2luaXQoKQpDYWNoZSBpbmZvOgog IHBpY2FjaGVfc3RyaWRlICAgID0gMAogIHBpY2FjaGVfbG9vcGNvdW50ID0gMAogIHBkY2Fj aGVfc3RyaWRlICAgID0gMAogIHBkY2FjaGVfbG9vcGNvdW50ID0gMApjcHUwOiBVbmtub3du IGNpZCAwIHByb2Nlc3NvciB2My45OQogIE1NVTogU3RhbmRhcmQgQkFULCA2NCBlbnRyaWVz CiAgTDEgaS1jYWNoZTogMCB3YXlzIG9mIDAgc2V0cywgMzIgYnl0ZXMgcGVyIGxpbmUKICBM MSBkLWNhY2hlOiAwIHdheXMgb2YgMCBzZXRzLCAzMiBieXRlcyBwZXIgbGluZQpQaHlzaWNh bCBtZW1vcnkgY2h1bmsocyk6CjB4NDVmMDAwIC0gMHhmYmExZmZmLCAyNTkyNzI3MDQgYnl0 ZXMgKDYzMjk5IHBhZ2VzKQpNYXhtZW0gaXMgMHhmYmEyMDAwCktEQjogZGVidWdnZXIgYmFj a2VuZHM6IGRkYgpLREI6IGN1cnJlbnQgYmFja2VuZDogZGRiCmh6PTEwMCBjeWxfcGVyX3Rp Y2s6NDAwMDAwIGN5bF9wZXJfdXNlYzo0MDAgZnJlcTo0MDAwMDAwMDAgY3lsX3Blcl9oejo0 MDAwMDAwIGN5bF9wZXJfc3RhdGh6OjQwMDAwMDAgY3lsX3Blcl9wcm9maHo6NDAwMDAwMApD b3B5cmlnaHQgKGMpIDE5OTItMjAxMCBUaGUgRnJlZUJTRCBQcm9qZWN0LgpDb3B5cmlnaHQg KGMpIDE5NzksIDE5ODAsIDE5ODMsIDE5ODYsIDE5ODgsIDE5ODksIDE5OTEsIDE5OTIsIDE5 OTMsIDE5OTQKCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCkZyZWVCU0QgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFy ayBvZiBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uLgpGcmVlQlNEIDkuMC1DVVJSRU5UICMzNjog VGh1IE1heSAyNyAwMDoxNTo1NSBDRVNUIDIwMTAKICAgIHBoY29kZXJAZnJlZWJzZC5iZzQ1 LnBobmV0Oi9ob21lL3BoY29kZXIvY29tcGlsZS9taXBzL2hvbWUvcGhjb2Rlci9wNC95ZWVs b29uZy9zcmMvc3lzL1lFRUxPT05HIG1pcHMKVHJhcCBjYXVzZSA9IDIgKFRMQiBtaXNzIChs b2FkIG9yIGluc3RyLiBmZXRjaCkgLSBrZXJuZWwgbW9kZSkKWyB0aHJlYWQgcGlkIDAgdGlk IDAgXQpTdG9wcGVkIGF0ICAgICAgMHhmZmZmZmZmZjgwMzg1YzY0OiAgICAgbGJ1ICAgICB2 MCwyMDUoYTApCmRiPiB0ClRyYWNpbmcgcGlkIDAgdGlkIDAgdGQgMHhmZmZmZmZmZjgwNDNm MDcwCmZmZmZmZmZmODAzYzgyMTgrNDAgKD8sPyw/LD8pIHJhIGZmZmZmZmZmODAxMzczYjgg c3AgZmZmZmZmZmY4MDQ3MDBlMCBzeiAxNgpmZmZmZmZmZjgwMTM3MjMwKzE4OCAoMCw/LGZm ZmZmZmZmZmZmZmZmZmYsPykgcmEgZmZmZmZmZmY4MDEzNmFmOCBzcCBmZmZmZmZmZjgwNDcw MGYwIHN6IDQ4CmZmZmZmZmZmODAxMzY2NjArNDk4ICg/LD8sPyw/KSByYSBmZmZmZmZmZjgw MTM2ZGM4IHNwIGZmZmZmZmZmODA0NzAxMjAgc3ogMTkyCmZmZmZmZmZmODAxMzZjZDArZjgg KD8sPyw/LD8pIHJhIGZmZmZmZmZmODAxM2E2MDAgc3AgZmZmZmZmZmY4MDQ3MDFlMCBzeiAx NgpmZmZmZmZmZjgwMTNhNDQwKzFjMCAoPyw/LD8sPykgcmEgZmZmZmZmZmY4MDIyOTVhYyBz cCBmZmZmZmZmZjgwNDcwMWYwIHN6IDgxNgpmZmZmZmZmZjgwMjI5NDIwKzE4YyAoPyw/LD8s PykgcmEgZmZmZmZmZmY4MDNiOTQ0YyBzcCBmZmZmZmZmZjgwNDcwNTIwIHN6IDMyCnRyYXAr MWM4YyAoPyw/LD8sPykgcmEgZmZmZmZmZmY4MDNhZDI0MCBzcCBmZmZmZmZmZjgwNDcwNTQw IHN6IDI1NgpNaXBzS2VybkdlbkV4Y2VwdGlvbisxNTQgKDAsMCwwLGZmZmZmZmZmODA0NzA5 MDApIHJhIGZmZmZmZmZmODAzODVjNjQgc3AgZmZmZmZmZmY4MDQ3MDY0MCBzeiAzNjgKZmZm ZmZmZmY4MDM4NWM1OCtjICg/LD8sPyw/KSByYSBmZmZmZmZmZjgwMzg4MDg4IHNwIGZmZmZm ZmZmODA0NzA3YjAgc3ogMTYKZmZmZmZmZmY4MDM4ODAxOCs3MCAoZmZmZmZmZmY4MDQ3MDhm OCw/LDAsPykgcmEgZmZmZmZmZmY4MDM3OWU1YyBzcCBmZmZmZmZmZjgwNDcwN2MwIHN6IDEy OApmZmZmZmZmZjgwMzc5ZDcwK2VjICgwLGZmZmZmZmZmYzAwMDIwMDAsMiwwKSByYSBmZmZm ZmZmZjgwM2I4MjgwIHNwIGZmZmZmZmZmODA0NzA4NDAgc3ogNDgwCnRyYXArYWMwICg/LD8s Pyw/KSByYSBmZmZmZmZmZjgwM2FkMjQwIHNwIGZmZmZmZmZmODA0NzBhMjAgc3ogMjU2Ck1p cHNLZXJuR2VuRXhjZXB0aW9uKzE1NCAoZmZmZmZmZmZjMDAwMjAwNCwwLDEsZmZmZmZmZmZj MDAzMDAwMCkgcmEgZmZmZmZmZmY4MDNjYTVlNCBzcCBmZmZmZmZmZjgwNDcwYjIwIHN6IDM2 OApmZmZmZmZmZjgwM2NhNWIwKzM0ICg/LD8sPyw/KSByYSAwIHNwIGZmZmZmZmZmODA0NzBj OTAgc3ogMApwaWQgMApkYj4gc2hvdyByZWdpc3RlcnMKYXQgICAgICAgICAgMHhmZmZmZmZm ZjgwNDQxN2Q4CnYwICAgICAgICAgICAgICAgICAweDEKdjEgICAgICAgICAgICAgICAgICAg MAphMCAgICAgICAgICAgICAgICAgICAwCmExICAgICAgICAgICAgICAgICAgIDAKYTIgICAg ICAgICAgICAgICAgICAgMAphMyAgICAgICAgICAweGZmZmZmZmZmODA0NzA5MDAKdDAgICAg ICAgICAgMHhmZmZmZmZmZjgwMzk2OWZjCnQxICAgICAgICAgICAgICAweDEwMDAKdDIgICAg ICAgICAgICAgICAgICAgMAp0MyAgICAgICAgICAgICAgICAgICAwCnQ0ICAgICAgICAgIDB4 ZmZmZmZmZmY4MDQ3MDhlOAp0NSAgICAgICAgICAweGZmZmZmZmZmODA0NzA4ZjAKdDYgICAg ICAgICAgMHhmZmZmZmZmZjgwNDcwODQwCnQ3ICAgICAgICAgIDB4ZmZmZmZmZmY4MDQ3MDg0 NApzMCAgICAgICAgICAweGZmZmZmZmZmODA0NzBiNDAKczEgICAgICAgICAgICAweDRlYjAw MApzMiAgICAgICAgICAgICAgICAgICAwCnMzICAgICAgICAgICAgICAgICAweDIKczQgICAg ICAgICAgICAgICAgICAgMAotLU1vcmUtLSAgICAgICAgczUgICAgICAgICAgMHhmZmZmZmZm ZjgwNDRmYTU4Ci0tTW9yZS0tICAgICAgICBzNiAgICAgICAgICAweGZmZmZmZmZmODA0NzA5 MDAKczcgICAgICAgICAgICAgICAgICAgMAp0OCAgICAgICAgICAgICAgICAgICAwCnQ5ICAg ICAgICAgICAgICAgICAgIDAKazAgICAgICAgICAgICAgICAgICAgMAprMSAgICAgICAgICAg ICAgICAgICAwCmdwICAgICAgICAgIDB4ZmZmZmZmZmY4MDQ0MDg0MApzcCAgICAgICAgICAw eGZmZmZmZmZmODA0NzA3YjAKczggICAgICAgICAgMHhmZmZmZmZmZmMwMDAyMDAwCnJhICAg ICAgICAgIDB4ZmZmZmZmZmY4MDM4ODA4OApzciAgICAgICAgICAweDIwMTAwMDAyCmxvICAg ICAgICAgICAgICAgIDB4NDgKaGkgICAgICAgICAgICAgICAgICAgMApiYWQgICAgICAgICAg ICAgICAweGNkCmNzICAgICAgICAgICAgICAweDhjMDgKcGMgICAgICAgICAgMHhmZmZmZmZm ZjgwMzg1YzY0CjB4ZmZmZmZmZmY4MDM4NWM2NDogICAgIGxidSAgICAgdjAsMjA1KGEwKQpk Yj4g --------------080906000803010207060400-- --------------enigD727110BCA27BDBB1AB618B8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iF4EAREKAAYFAkv9oEQACgkQNak7dOguQglDIwD/fdoZ/Q+v+4m/YjbLrjyQkXNJ cCi0mavXPiYAcd3NfkIBAJlcgz2Z/nvDM7pUQgSYyN1as/tXojiOPuw/qEs+hPqB =5mUf -----END PGP SIGNATURE----- --------------enigD727110BCA27BDBB1AB618B8--