From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21010 invoked by alias); 16 Sep 2003 18:48:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 20982 invoked from network); 16 Sep 2003 18:48:56 -0000 Received: from unknown (HELO hub.ott.qnx.com) (209.226.137.76) by sources.redhat.com with SMTP; 16 Sep 2003 18:48:56 -0000 Received: from smtp.ott.qnx.com (smtp.ott.qnx.com [10.0.2.158]) by hub.ott.qnx.com (8.9.3/8.9.3) with ESMTP id OAA30930 for ; Tue, 16 Sep 2003 14:47:49 -0400 Received: from localhost ([10.4.2.2]) by smtp.ott.qnx.com (8.8.8/8.6.12) with ESMTP id OAA31522 for ; Tue, 16 Sep 2003 14:48:56 -0400 Date: Tue, 16 Sep 2003 18:48:00 -0000 From: kewarken X-X-Sender: kewarken@catdog.ott.qnx.com To: gdb-patches@sources.redhat.com Subject: [Patch] fix for PR:1291 Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-52559310-1063738178=:1008" X-SW-Source: 2003-09/txt/msg00362.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-52559310-1063738178=:1008 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 1065 This patch addresses an issue with SH processors where gdb cannot backtrace out of function with more than 256 bytes of local variables. Code such as: sub1() { int buf[64]; } sub2() { int buf[65]; } generates prologues such as: sub1: mov.l r14,@-r15 add #-128,r15 add #-128,r15 mov r15,r14 .L8: mov.w .L9,r7 add r7,r14 mov r14,r15 mov.l @r15+,r14 rts nop .align 1 .L9: .short 256 and sub2: mov.l r14,@-r15 mov.w .L11,r3 sub r3,r15 mov r15,r14 .L10: mov.w .L11,r7 add r7,r14 mov r14,r15 mov.l @r15+,r14 rts nop .align 1 .L11: .short 260 The second form is not recognized properly by the frame code in gdb. In the gcc 3 series, r1 is used instead of r3 so this patch expands on the original patch attached to the PR. Credit to inaba@src.ricoh.co.jp for his original find and patch and to Colin Burgess for noting the differences between gcc 2 and 3. ChangeLog: 2003-09-16 Kris Warkentin * sh-tdep.c: Properly detect frame prologues for functions with more than 256 bytes of local variables. ---559023410-52559310-1063738178=:1008 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sh-tdep.c.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="sh-tdep.c.diff" Content-length: 5580 SW5kZXg6IHNoLXRkZXAuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvc2gtdGRlcC5jLHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4xMzYNCmRpZmYgLXUgLXIxLjEzNiBzaC10ZGVwLmMN Ci0tLSBzaC10ZGVwLmMJMjEgQXVnIDIwMDMgMDA6MDE6MzEgLTAwMDAJMS4x MzYNCisrKyBzaC10ZGVwLmMJMTYgU2VwIDIwMDMgMTg6MzU6MzkgLTAwMDAN CkBAIC02MjIsMTMgKzYyMiwzOSBAQA0KICAgIHIxNStpbW0tLT5yMTUgKi8N CiAjZGVmaW5lIElTX0FERF9TUCh4KSAJCSgoKHgpICYgMHhmZjAwKSA9PSAw eDdmMDApDQogDQotI2RlZmluZSBJU19NT1ZfUjMoeCkgCQkoKCh4KSAmIDB4 ZmYwMCkgPT0gMHgxYTAwKQ0KKy8qIE1PViAjaW1tLHIzICAgICAxMTEwMDAx MWlpaWlpaWlpDQorICAgaW1tLS0+cjMgKi8NCisjZGVmaW5lIElTX01PVl9S Myh4KSAoKCh4KSAmIDB4ZmYwMCkgPT0gMHhlMzAwKQ0KICNkZWZpbmUgSVNf U0hMTF9SMyh4KQkJKCh4KSA9PSAweDQzMDApDQogDQogLyogQUREIHIzLHIx NSAgICAgIDAwMTExMTExMDAxMTExMDANCiAgICByMTUrcjMtLT5yMTUgKi8N CiAjZGVmaW5lIElTX0FERF9SM1NQKHgpCQkoKHgpID09IDB4M2YzYykNCiAN CisvKiBNT1YuVyBAKGRpc3AsIHBjKSwgcjEgICAgIDEwMDEwMDAxZGRkZGRk ZGQNCisgICAoZGlzcCAqIDIgKyBwYyArIDQpLS0+cjEgKi8NCisjZGVmaW5l IElTX01PVldfUjEoeCkgKCgoeCkgJiAweGZmMDApID09IDB4OTEwMCkNCisN CisvKiBNT1YuTCBAKGRpc3AsIHBjKSwgcjEgICAgIDExMDEwMDAxZGRkZGRk ZGQNCisgICAoZGlzcCAqIDQgKyBwYyArIDQpLS0+cjEgKi8NCisjZGVmaW5l IElTX01PVkxfUjEoeCkgKCgoeCkgJiAweGZmMDApID09IDB4ZDEwMCkNCisN CisvKiBTVUIgcjEscjE1ICAgICAgMDAxMTExMTExMDAwMTEwMDANCisgICBy MTUtcjEtLT5yMTUgKi8NCisjZGVmaW5lIElTX1NVQl9SMVNQKHgpICgoeCkg PT0gMHgzZjE4KQ0KKw0KKy8qIE1PVi5XIEAoZGlzcCwgcGMpLCByMyAgICAg MTAwMTAwMTFkZGRkZGRkZA0KKyAgIChkaXNwICogMiArIHBjICsgNCktLT5y MyAqLw0KKyNkZWZpbmUgSVNfTU9WV19SMyh4KSAoKCh4KSAmIDB4ZmYwMCkg PT0gMHg5MzAwKQ0KKw0KKy8qIE1PVi5MIEAoZGlzcCwgcGMpLCByMyAgICAg MTEwMTAwMTFkZGRkZGRkZA0KKyAgIChkaXNwICogNCArIHBjICsgNCktLT5y MyAqLw0KKyNkZWZpbmUgSVNfTU9WTF9SMyh4KSAoKCh4KSAmIDB4ZmYwMCkg PT0gMHhkMzAwKQ0KKw0KKy8qIFNVQiByMyxyMTUgICAgICAwMDExMTExMTEw MDExMTAwMA0KKyAgIHIxNS1yMy0tPnIxNSAqLw0KKyNkZWZpbmUgSVNfU1VC X1IzU1AoeCkgKCh4KSA9PSAweDNmMzgpDQorDQogLyogRk1PVi5TIEZSbSxA LVJuICBSbi00LS0+Um4sIEZSbS0tPihSbikgICAgIDExMTFubm5ubW1tbTEw MTENCiAgICBGTU9WIERSbSxALVJuICAgIFJuLTgtLT5SbiwgRFJtLS0+KFJu KSAgICAgMTExMW5ubm5tbW0wMTAxMQ0KICAgIEZNT1YgWERtLEAtUm4gICAg Um4tOC0tPlJuLCBYRG0tLT4oUm4pICAgICAxMTExbm5ubm1tbTExMDExICov DQpAQCAtNjk2LDggKzcyMiwxMSBAQA0KICAgICB7DQogICAgICAgaW50IHcg PSByZWFkX21lbW9yeV9pbnRlZ2VyIChoZXJlLCAyKTsNCiAgICAgICBoZXJl ICs9IDI7DQotICAgICAgaWYgKElTX0ZNT1YgKHcpIHx8IElTX1BVU0ggKHcp IHx8IElTX1NUUyAodykgfHwgSVNfTU9WX1IzICh3KQ0KLQkgIHx8IElTX0FE RF9SM1NQICh3KSB8fCBJU19BRERfU1AgKHcpIHx8IElTX1NITExfUjMgKHcp IA0KKyAgICAgIGlmIChJU19GTU9WICh3KSB8fCBJU19QVVNIICh3KSB8fCBJ U19TVFMgKHcpIA0KKwkgIHx8IElTX01PVl9SMyAodykNCisJICB8fCBJU19N T1ZXX1IzICh3KSB8fCBJU19NT1ZMX1IzICh3KSB8fCBJU19TVUJfUjNTUCAo dykgfHwgSVNfQUREX1IzU1AgKHcpIA0KKwkgIHx8IElTX01PVldfUjEgKHcp IHx8IElTX01PVkxfUjEgKHcpIHx8IElTX1NVQl9SMVNQICh3KSANCisJICB8 fCBJU19BRERfU1AgKHcpIHx8IElTX1NITExfUjMgKHcpIA0KIAkgIHx8IElT X0FSR19NT1YgKHcpIHx8IElTX01PVl9UT19SMTQgKHcpKQ0KIAl7DQogCSAg c3RhcnRfcGMgPSBoZXJlOw0KQEAgLTExMDEsNiArMTEzMCw3IEBADQogICBp bnQgcGM7DQogICBpbnQgb3BjOw0KICAgaW50IGluc247DQorICBpbnQgcjFf dmFsID0gMDsNCiAgIGludCByM192YWwgPSAwOw0KICAgY2hhciAqZHVtbXlf cmVncyA9IGRlcHJlY2F0ZWRfZ2VuZXJpY19maW5kX2R1bW15X2ZyYW1lIChn ZXRfZnJhbWVfcGMgKGZpKSwNCiAJCQkJCQkJICBnZXRfZnJhbWVfYmFzZSAo ZmkpKTsNCkBAIC0xMTY3LDYgKzExOTcsMzAgQEANCiAJew0KIAkgIGRlcHRo ICs9IC1yM192YWw7DQogCX0NCisgICAgICBlbHNlIGlmIChJU19NT1ZXX1Ix IChpbnNuKSkNCisJew0KKwkgIHIxX3ZhbCA9IHJlYWRfbWVtb3J5X2ludGVn ZXIgKHBjICsgNCArIChpbnNuICYgMHhmZikgKiAyLCAyKTsNCisJfQ0KKyAg ICAgIGVsc2UgaWYgKElTX01PVkxfUjEgKGluc24pKQ0KKwl7DQorCSAgcjFf dmFsID0gcmVhZF9tZW1vcnlfaW50ZWdlciAocGMgKyA0ICsgKGluc24gJiAw eGZmKSAqIDQsIDQpOw0KKwl9DQorICAgICAgZWxzZSBpZiAoSVNfU1VCX1Ix U1AgKGluc24pKQ0KKwl7DQorCSAgZGVwdGggKz0gcjFfdmFsOw0KKwl9DQor ICAgICAgZWxzZSBpZiAoSVNfTU9WV19SMyAoaW5zbikpDQorCXsNCisJICBy M192YWwgPSByZWFkX21lbW9yeV9pbnRlZ2VyIChwYyArIDQgKyAoaW5zbiAm IDB4ZmYpICogMiwgMik7DQorCX0NCisgICAgICBlbHNlIGlmIChJU19NT1ZM X1IzIChpbnNuKSkNCisJew0KKwkgIHIzX3ZhbCA9IHJlYWRfbWVtb3J5X2lu dGVnZXIgKHBjICsgNCArIChpbnNuICYgMHhmZikgKiA0LCA0KTsNCisJfQ0K KyAgICAgIGVsc2UgaWYgKElTX1NVQl9SM1NQIChpbnNuKSkNCisJew0KKwkg IGRlcHRoICs9IHIzX3ZhbDsNCisJfQ0KICAgICAgIGVsc2UgaWYgKElTX0FE RF9TUCAoaW5zbikpDQogCXsNCiAJICBkZXB0aCAtPSAoKGluc24gJiAweGZm KSBeIDB4ODApIC0gMHg4MDsNCkBAIC0xNjQyLDYgKzE2OTYsNyBAQA0KICAg aW50IHBjOw0KICAgaW50IG9wYzsNCiAgIGludCBpbnNuOw0KKyAgaW50IHIx X3ZhbCA9IDA7DQogICBpbnQgcjNfdmFsID0gMDsNCiAgIGNoYXIgKmR1bW15 X3JlZ3MgPSBkZXByZWNhdGVkX2dlbmVyaWNfZmluZF9kdW1teV9mcmFtZSAo Z2V0X2ZyYW1lX3BjIChmaSksIGdldF9mcmFtZV9iYXNlIChmaSkpOw0KICAg c3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoY3Vy cmVudF9nZGJhcmNoKTsgDQpAQCAtMTcwNyw2ICsxNzYyLDMwIEBADQogICAg ICAgZWxzZSBpZiAoSVNfQUREX1IzU1AgKGluc24pKQ0KIAl7DQogCSAgZGVw dGggKz0gLXIzX3ZhbDsNCisJfQ0KKyAgICAgIGVsc2UgaWYgKElTX01PVldf UjEgKGluc24pKQ0KKwl7DQorCSAgcjFfdmFsID0gcmVhZF9tZW1vcnlfaW50 ZWdlciAocGMgKyA0ICsgKGluc24gJiAweGZmKSAqIDIsIDIpOw0KKwl9DQor ICAgICAgZWxzZSBpZiAoSVNfTU9WTF9SMSAoaW5zbikpDQorCXsNCisJICBy MV92YWwgPSByZWFkX21lbW9yeV9pbnRlZ2VyIChwYyArIDQgKyAoaW5zbiAm IDB4ZmYpICogNCwgNCk7DQorCX0NCisgICAgICBlbHNlIGlmIChJU19TVUJf UjFTUCAoaW5zbikpDQorCXsNCisJICBkZXB0aCArPSByMV92YWw7DQorCX0N CisgICAgICBlbHNlIGlmIChJU19NT1ZXX1IzIChpbnNuKSkNCisJew0KKwkg IHIzX3ZhbCA9IHJlYWRfbWVtb3J5X2ludGVnZXIgKHBjICsgNCArIChpbnNu ICYgMHhmZikgKiAyLCAyKTsNCisJfQ0KKyAgICAgIGVsc2UgaWYgKElTX01P VkxfUjMgKGluc24pKQ0KKwl7DQorCSAgcjNfdmFsID0gcmVhZF9tZW1vcnlf aW50ZWdlciAocGMgKyA0ICsgKGluc24gJiAweGZmKSAqIDQsIDQpOw0KKwl9 DQorICAgICAgZWxzZSBpZiAoSVNfU1VCX1IzU1AgKGluc24pKQ0KKwl7DQor CSAgZGVwdGggKz0gcjNfdmFsOw0KIAl9DQogICAgICAgZWxzZSBpZiAoSVNf QUREX1NQIChpbnNuKSkNCiAJew0K ---559023410-52559310-1063738178=:1008--