From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25092 invoked by alias); 2 Dec 2005 23:38:39 -0000 Received: (qmail 25078 invoked by uid 22791); 2 Dec 2005 23:38:31 -0000 X-Spam-Check-By: sourceware.org Received: from e34.co.us.ibm.com (HELO e34.co.us.ibm.com) (32.97.110.152) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 02 Dec 2005 23:38:28 +0000 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e34.co.us.ibm.com (8.12.11/8.12.11) with ESMTP id jB2NcRsX032029 for ; Fri, 2 Dec 2005 18:38:27 -0500 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay04.boulder.ibm.com (8.12.10/NCO/VERS6.8) with ESMTP id jB2Ndvb5095940 for ; Fri, 2 Dec 2005 16:39:57 -0700 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id jB2NcQ8H026307 for ; Fri, 2 Dec 2005 16:38:27 -0700 Received: from dyn9047022123-009047022095.beaverton.ibm.com (dyn9047022123-009047022095.beaverton.ibm.com [9.47.22.95]) by d03av03.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id jB2NcQwR026304; Fri, 2 Dec 2005 16:38:26 -0700 From: Paul Gilliam Reply-To: pgilliam@us.ibm.com To: Jim Blandy Subject: Re: [PATCH] add 'rs6000_in_function_epilogue_p()' (Revised) Date: Sat, 03 Dec 2005 12:48:00 -0000 User-Agent: KMail/1.6.2 Cc: gdb-patches@sources.redhat.com References: <200511301225.56802.pgilliam@us.ibm.com> <200512021120.22263.pgilliam@us.ibm.com> <8f2776cb0512021319x69cdb461xc92d9280313feefe@mail.gmail.com> In-Reply-To: <8f2776cb0512021319x69cdb461xc92d9280313feefe@mail.gmail.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_kJOkDoWdBs2NF+E" Message-Id: <200512021610.12182.pgilliam@us.ibm.com> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2005-12/txt/msg00078.txt.bz2 --Boundary-00=_kJOkDoWdBs2NF+E Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 942 On Friday 02 December 2005 13:19, Jim Blandy wrote: > > > Whatever we do immediately, the underlying cause here is that > > > unwinding isn't working at every instruction. If it were, then the > > > call to frame_find_by_id would find the frame containing the watched > > > variable, and watchpoint_check would correctly conclude that the > > > variable was still in scope. > > > > > > Paul, does your test program have Dwarf CFI for the functions in question? > > > > > I have attached a couple of dumps (and a typescript show how they where made), the executable, and the source. > > Okay, thanks. I don't have a ppc64 toolchain handy; could you post > the output from objdump -d testwatch? The readelf dump that I wanted > was 'readelf -wF' or '-wf'; but since you provided the executable, > that's fine. > > OK. I have attached the output from "objdump -d testwatch" Please ignore this if it's no longer relevent. -=# Paul #=- --Boundary-00=_kJOkDoWdBs2NF+E Content-Type: text/plain; charset="iso-8859-1"; name="testwatch.objdump-d" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="testwatch.objdump-d" Content-length: 13417 testwatch: file format elf64-powerpc Disassembly of section .init: 0000000010000318 <._init>: 10000318: 7c 08 02 a6 mflr r0 1000031c: f8 01 00 10 std r0,16(r1) 10000320: f8 21 ff 91 stdu r1,-112(r1) 10000324: 48 00 00 99 bl 100003bc <.call_gmon_start> 10000328: 48 00 01 6d bl 10000494 <.frame_dummy> 1000032c: 60 00 00 00 nop 10000330: 48 00 03 d9 bl 10000708 <.__do_global_ctors_aux> 10000334: 60 00 00 00 nop 10000338: 38 21 00 70 addi r1,r1,112 1000033c: e8 01 00 10 ld r0,16(r1) 10000340: 7c 08 03 a6 mtlr r0 10000344: 4e 80 00 20 blr Disassembly of section .text: 0000000010000348 <._Jv_RegisterClasses>: 10000348: 3d 82 00 00 addis r12,r2,0 1000034c: f8 41 00 28 std r2,40(r1) 10000350: e9 6c 80 a8 ld r11,-32600(r12) 10000354: e8 4c 80 b0 ld r2,-32592(r12) 10000358: 7d 69 03 a6 mtctr r11 1000035c: e9 6c 80 b8 ld r11,-32584(r12) 10000360: 4e 80 04 20 bctr 0000000010000364 <.__libc_start_main>: 10000364: 3d 82 00 00 addis r12,r2,0 10000368: f8 41 00 28 std r2,40(r1) 1000036c: e9 6c 80 90 ld r11,-32624(r12) 10000370: e8 4c 80 98 ld r2,-32616(r12) 10000374: 7d 69 03 a6 mtctr r11 10000378: e9 6c 80 a0 ld r11,-32608(r12) 1000037c: 4e 80 04 20 bctr 0000000010000380 <._start>: 10000380: 7c 29 0b 78 mr r9,r1 10000384: 78 21 06 e4 rldicr r1,r1,0,59 10000388: 38 00 00 00 li r0,0 1000038c: f8 21 ff 81 stdu r1,-128(r1) 10000390: 7c 08 03 a6 mtlr r0 10000394: f8 01 00 00 std r0,0(r1) 10000398: e9 02 80 08 ld r8,-32760(r2) 1000039c: 4b ff ff c8 b 10000364 <.__libc_start_main> 100003a0: e8 41 00 28 ld r2,40(r1) 100003a4: 00 00 00 00 .long 0x0 100003a8: 00 0c 20 40 .long 0xc2040 100003ac: 00 00 00 00 .long 0x0 100003b0: 00 00 00 24 .long 0x24 100003b4: 00 06 5f 73 .long 0x65f73 100003b8: 74 61 72 74 andis. r1,r3,29300 00000000100003bc <.call_gmon_start>: 100003bc: 7c 08 02 a6 mflr r0 100003c0: f8 01 00 10 std r0,16(r1) 100003c4: f8 21 ff 91 stdu r1,-112(r1) 100003c8: e9 22 80 10 ld r9,-32752(r2) 100003cc: 2f a9 00 00 cmpdi cr7,r9,0 100003d0: 41 9e 00 20 beq- cr7,100003f0 <.call_gmon_start+0x34> 100003d4: e8 09 00 00 ld r0,0(r9) 100003d8: 7c 09 03 a6 mtctr r0 100003dc: f8 41 00 28 std r2,40(r1) 100003e0: e8 49 00 08 ld r2,8(r9) 100003e4: e9 69 00 10 ld r11,16(r9) 100003e8: 4e 80 04 21 bctrl 100003ec: e8 41 00 28 ld r2,40(r1) 100003f0: 38 21 00 70 addi r1,r1,112 100003f4: e8 01 00 10 ld r0,16(r1) 100003f8: 7c 08 03 a6 mtlr r0 100003fc: 4e 80 00 20 blr 0000000010000400 <.__do_global_dtors_aux>: 10000400: 7c 08 02 a6 mflr r0 10000404: e9 62 80 18 ld r11,-32744(r2) 10000408: fb e1 ff f8 std r31,-8(r1) 1000040c: f8 01 00 10 std r0,16(r1) 10000410: f8 21 ff 81 stdu r1,-128(r1) 10000414: 88 0b 00 00 lbz r0,0(r11) 10000418: 2f 80 00 00 cmpwi cr7,r0,0 1000041c: 40 9e 00 64 bne- cr7,10000480 <.__do_global_dtors_aux+0x80> 10000420: eb e2 80 20 ld r31,-32736(r2) 10000424: e9 3f 00 00 ld r9,0(r31) 10000428: e9 49 00 00 ld r10,0(r9) 1000042c: 2f aa 00 00 cmpdi cr7,r10,0 10000430: 40 be 00 0c bne+ cr7,1000043c <.__do_global_dtors_aux+0x3c> 10000434: 48 00 00 44 b 10000478 <.__do_global_dtors_aux+0x78> 10000438: eb e2 80 20 ld r31,-32736(r2) 1000043c: e9 3f 00 00 ld r9,0(r31) 10000440: 39 29 00 08 addi r9,r9,8 10000444: f9 3f 00 00 std r9,0(r31) 10000448: e8 0a 00 00 ld r0,0(r10) 1000044c: f8 41 00 28 std r2,40(r1) 10000450: e9 6a 00 10 ld r11,16(r10) 10000454: 7c 09 03 a6 mtctr r0 10000458: e8 4a 00 08 ld r2,8(r10) 1000045c: 4e 80 04 21 bctrl 10000460: e8 41 00 28 ld r2,40(r1) 10000464: e9 3f 00 00 ld r9,0(r31) 10000468: e9 49 00 00 ld r10,0(r9) 1000046c: 2f aa 00 00 cmpdi cr7,r10,0 10000470: 40 9e ff c8 bne+ cr7,10000438 <.__do_global_dtors_aux+0x38> 10000474: e9 62 80 18 ld r11,-32744(r2) 10000478: 38 00 00 01 li r0,1 1000047c: 98 0b 00 00 stb r0,0(r11) 10000480: 38 21 00 80 addi r1,r1,128 10000484: e8 01 00 10 ld r0,16(r1) 10000488: eb e1 ff f8 ld r31,-8(r1) 1000048c: 7c 08 03 a6 mtlr r0 10000490: 4e 80 00 20 blr 0000000010000494 <.frame_dummy>: 10000494: 7c 08 02 a6 mflr r0 10000498: e8 62 80 28 ld r3,-32728(r2) 1000049c: f8 01 00 10 std r0,16(r1) 100004a0: f8 21 ff 91 stdu r1,-112(r1) 100004a4: e8 03 00 00 ld r0,0(r3) 100004a8: 2f a0 00 00 cmpdi cr7,r0,0 100004ac: 41 9e 00 10 beq- cr7,100004bc <.frame_dummy+0x28> 100004b0: e8 02 80 30 ld r0,-32720(r2) 100004b4: 2f a0 00 00 cmpdi cr7,r0,0 100004b8: 40 9e 00 14 bne- cr7,100004cc <.frame_dummy+0x38> 100004bc: 38 21 00 70 addi r1,r1,112 100004c0: e8 01 00 10 ld r0,16(r1) 100004c4: 7c 08 03 a6 mtlr r0 100004c8: 4e 80 00 20 blr 100004cc: 4b ff fe 7d bl 10000348 <._Jv_RegisterClasses> 100004d0: e8 41 00 28 ld r2,40(r1) 100004d4: 38 21 00 70 addi r1,r1,112 100004d8: e8 01 00 10 ld r0,16(r1) 100004dc: 7c 08 03 a6 mtlr r0 100004e0: 4e 80 00 20 blr 00000000100004e4 <.subr2>: 100004e4: fb e1 ff f8 std r31,-8(r1) 100004e8: f8 21 ff c1 stdu r1,-64(r1) 100004ec: 7c 3f 0b 78 mr r31,r1 100004f0: f8 7f 00 70 std r3,112(r31) 100004f4: e9 3f 00 70 ld r9,112(r31) 100004f8: 38 00 00 09 li r0,9 100004fc: 90 09 00 00 stw r0,0(r9) 10000500: e9 3f 00 70 ld r9,112(r31) 10000504: 38 00 00 01 li r0,1 10000508: 90 09 00 00 stw r0,0(r9) 1000050c: e8 21 00 00 ld r1,0(r1) 10000510: eb e1 ff f8 ld r31,-8(r1) 10000514: 4e 80 00 20 blr ... 10000520: 80 01 00 01 lwz r0,1(r1) 0000000010000524 <.subr1>: 10000524: 7c 08 02 a6 mflr r0 10000528: fb e1 ff f8 std r31,-8(r1) 1000052c: f8 01 00 10 std r0,16(r1) 10000530: f8 21 ff 71 stdu r1,-144(r1) 10000534: 7c 3f 0b 78 mr r31,r1 10000538: 38 00 00 09 li r0,9 1000053c: 90 1f 00 70 stw r0,112(r31) 10000540: 38 7f 00 70 addi r3,r31,112 10000544: 4b ff ff a1 bl 100004e4 <.subr2> 10000548: e9 22 80 38 ld r9,-32712(r2) 1000054c: 38 00 00 02 li r0,2 10000550: 90 09 00 00 stw r0,0(r9) 10000554: e9 22 80 40 ld r9,-32704(r2) 10000558: c8 02 80 48 lfd f0,-32696(r2) 1000055c: d8 09 00 00 stfd f0,0(r9) 10000560: 38 00 00 02 li r0,2 10000564: 90 1f 00 70 stw r0,112(r31) 10000568: e8 21 00 00 ld r1,0(r1) 1000056c: e8 01 00 10 ld r0,16(r1) 10000570: 7c 08 03 a6 mtlr r0 10000574: eb e1 ff f8 ld r31,-8(r1) 10000578: 4e 80 00 20 blr 1000057c: 00 00 00 00 .long 0x0 10000580: 00 00 00 01 .long 0x1 10000584: 80 01 00 01 lwz r0,1(r1) 0000000010000588 <.main>: 10000588: 7c 08 02 a6 mflr r0 1000058c: fb e1 ff f8 std r31,-8(r1) 10000590: f8 01 00 10 std r0,16(r1) 10000594: f8 21 ff 71 stdu r1,-144(r1) 10000598: 7c 3f 0b 78 mr r31,r1 1000059c: 38 00 00 00 li r0,0 100005a0: 90 1f 00 70 stw r0,112(r31) 100005a4: 4b ff ff 81 bl 10000524 <.subr1> 100005a8: 7c 03 03 78 mr r3,r0 100005ac: e8 21 00 00 ld r1,0(r1) 100005b0: e8 01 00 10 ld r0,16(r1) 100005b4: 7c 08 03 a6 mtlr r0 100005b8: eb e1 ff f8 ld r31,-8(r1) 100005bc: 4e 80 00 20 blr 100005c0: 00 00 00 00 .long 0x0 100005c4: 00 00 00 01 .long 0x1 100005c8: 80 01 00 01 lwz r0,1(r1) 00000000100005cc <.__libc_csu_fini>: 100005cc: 7c 08 02 a6 mflr r0 100005d0: e9 62 80 58 ld r11,-32680(r2) 100005d4: fb e1 ff f8 std r31,-8(r1) 100005d8: f8 01 00 10 std r0,16(r1) 100005dc: e8 02 80 50 ld r0,-32688(r2) 100005e0: fb a1 ff e8 std r29,-24(r1) 100005e4: 7c 0b 00 50 subf r0,r11,r0 100005e8: f8 21 ff 71 stdu r1,-144(r1) 100005ec: 7c 1f 1e 74 sradi r31,r0,3 100005f0: 2f bf 00 00 cmpdi cr7,r31,0 100005f4: 3b ff ff ff addi r31,r31,-1 100005f8: 40 be 00 0c bne+ cr7,10000604 <.__libc_csu_fini+0x38> 100005fc: 48 00 00 3c b 10000638 <.__libc_csu_fini+0x6c> 10000600: e9 62 80 58 ld r11,-32680(r2) 10000604: 7b e9 1f 24 rldicr r9,r31,3,60 10000608: 7f fd fb 78 mr r29,r31 1000060c: 7d 49 58 2a ldx r10,r9,r11 10000610: 3b ff ff ff addi r31,r31,-1 10000614: e8 0a 00 00 ld r0,0(r10) 10000618: f8 41 00 28 std r2,40(r1) 1000061c: 7c 09 03 a6 mtctr r0 10000620: e9 6a 00 10 ld r11,16(r10) 10000624: e8 4a 00 08 ld r2,8(r10) 10000628: 4e 80 04 21 bctrl 1000062c: e8 41 00 28 ld r2,40(r1) 10000630: 2f bd 00 00 cmpdi cr7,r29,0 10000634: 40 9e ff cc bne+ cr7,10000600 <.__libc_csu_fini+0x34> 10000638: 48 00 01 91 bl 100007c8 <._fini> 1000063c: 60 00 00 00 nop 10000640: 38 21 00 90 addi r1,r1,144 10000644: e8 01 00 10 ld r0,16(r1) 10000648: eb a1 ff e8 ld r29,-24(r1) 1000064c: 7c 08 03 a6 mtlr r0 10000650: eb e1 ff f8 ld r31,-8(r1) 10000654: 4e 80 00 20 blr 10000658: 00 00 00 00 .long 0x0 1000065c: 00 00 00 01 .long 0x1 10000660: 80 03 00 00 lwz r0,0(r3) 0000000010000664 <.__libc_csu_init>: 10000664: 7c 08 02 a6 mflr r0 10000668: fb e1 ff f8 std r31,-8(r1) 1000066c: f8 01 00 10 std r0,16(r1) 10000670: f8 21 ff 81 stdu r1,-128(r1) 10000674: 4b ff fc a5 bl 10000318 <._init> 10000678: 60 00 00 00 nop 1000067c: 3b e0 00 00 li r31,0 10000680: e8 02 80 60 ld r0,-32672(r2) 10000684: e9 62 80 68 ld r11,-32664(r2) 10000688: 7c 0b 00 50 subf r0,r11,r0 1000068c: 78 09 e8 c3 rldicl. r9,r0,61,3 10000690: 40 82 00 18 bne- 100006a8 <.__libc_csu_init+0x44> 10000694: 38 21 00 80 addi r1,r1,128 10000698: e8 01 00 10 ld r0,16(r1) 1000069c: eb e1 ff f8 ld r31,-8(r1) 100006a0: 7c 08 03 a6 mtlr r0 100006a4: 4e 80 00 20 blr 100006a8: 7b e9 1f 24 rldicr r9,r31,3,60 100006ac: 3b ff 00 01 addi r31,r31,1 100006b0: 7d 49 58 2a ldx r10,r9,r11 100006b4: e8 0a 00 00 ld r0,0(r10) 100006b8: f8 41 00 28 std r2,40(r1) 100006bc: 7c 09 03 a6 mtctr r0 100006c0: e9 6a 00 10 ld r11,16(r10) 100006c4: e8 4a 00 08 ld r2,8(r10) 100006c8: 4e 80 04 21 bctrl 100006cc: e8 41 00 28 ld r2,40(r1) 100006d0: e8 02 80 60 ld r0,-32672(r2) 100006d4: e9 62 80 68 ld r11,-32664(r2) 100006d8: 7c 0b 00 50 subf r0,r11,r0 100006dc: 7c 00 1e 74 sradi r0,r0,3 100006e0: 7f bf 00 40 cmpld cr7,r31,r0 100006e4: 41 9c ff c4 blt+ cr7,100006a8 <.__libc_csu_init+0x44> 100006e8: 38 21 00 80 addi r1,r1,128 100006ec: e8 01 00 10 ld r0,16(r1) 100006f0: eb e1 ff f8 ld r31,-8(r1) 100006f4: 7c 08 03 a6 mtlr r0 100006f8: 4e 80 00 20 blr 100006fc: 00 00 00 00 .long 0x0 10000700: 00 00 00 01 .long 0x1 10000704: 80 01 00 00 lwz r0,0(r1) 0000000010000708 <.__do_global_ctors_aux>: 10000708: 7c 08 02 a6 mflr r0 1000070c: e9 22 80 70 ld r9,-32656(r2) 10000710: fb e1 ff f8 std r31,-8(r1) 10000714: f8 01 00 10 std r0,16(r1) 10000718: 3b e9 ff f8 addi r31,r9,-8 1000071c: f8 21 ff 81 stdu r1,-128(r1) 10000720: e8 09 ff f8 ld r0,-8(r9) 10000724: 2f a0 ff ff cmpdi cr7,r0,-1 10000728: 41 9e 00 34 beq- cr7,1000075c <.__do_global_ctors_aux+0x54> 1000072c: 7c 09 03 78 mr r9,r0 10000730: e8 09 00 00 ld r0,0(r9) 10000734: f8 41 00 28 std r2,40(r1) 10000738: 7c 09 03 a6 mtctr r0 1000073c: e9 69 00 10 ld r11,16(r9) 10000740: e8 49 00 08 ld r2,8(r9) 10000744: 4e 80 04 21 bctrl 10000748: e8 41 00 28 ld r2,40(r1) 1000074c: e8 1f ff f9 ldu r0,-8(r31) 10000750: 2f a0 ff ff cmpdi cr7,r0,-1 10000754: 7c 09 03 78 mr r9,r0 10000758: 40 9e ff d8 bne+ cr7,10000730 <.__do_global_ctors_aux+0x28> 1000075c: 38 21 00 80 addi r1,r1,128 10000760: e8 01 00 10 ld r0,16(r1) 10000764: eb e1 ff f8 ld r31,-8(r1) 10000768: 7c 08 03 a6 mtlr r0 1000076c: 4e 80 00 20 blr 10000770: 4e 80 00 20 blr 10000774: 7d 89 02 a6 mfctr r12 10000778: 78 0b 1f 24 rldicr r11,r0,3,60 1000077c: 34 40 80 00 addic. r2,r0,-32768 10000780: 7d 8b 60 50 subf r12,r11,r12 10000784: 7c 42 fe 76 sradi r2,r2,63 10000788: 78 0b 17 64 rldicr r11,r0,2,61 1000078c: 7c 42 58 38 and r2,r2,r11 10000790: 7d 8b 60 50 subf r12,r11,r12 10000794: 7d 8c 12 14 add r12,r12,r2 10000798: 3d 8c 00 01 addis r12,r12,1 1000079c: e9 6c 03 dc ld r11,988(r12) 100007a0: 39 8c 03 dc addi r12,r12,988 100007a4: e8 4c 00 08 ld r2,8(r12) 100007a8: 7d 69 03 a6 mtctr r11 100007ac: e9 6c 00 10 ld r11,16(r12) 100007b0: 4e 80 04 20 bctr 100007b4: 38 00 00 00 li r0,0 100007b8: 4b ff ff bc b 10000774 <.__do_global_ctors_aux+0x6c> 100007bc: 38 00 00 01 li r0,1 100007c0: 4b ff ff b4 b 10000774 <.__do_global_ctors_aux+0x6c> Disassembly of section .fini: 00000000100007c8 <._fini>: 100007c8: 7c 08 02 a6 mflr r0 100007cc: f8 01 00 10 std r0,16(r1) 100007d0: f8 21 ff 91 stdu r1,-112(r1) 100007d4: 60 00 00 00 nop 100007d8: 4b ff fc 29 bl 10000400 <.__do_global_dtors_aux> 100007dc: 60 00 00 00 nop 100007e0: 38 21 00 70 addi r1,r1,112 100007e4: e8 01 00 10 ld r0,16(r1) 100007e8: 7c 08 03 a6 mtlr r0 100007ec: 4e 80 00 20 blr --Boundary-00=_kJOkDoWdBs2NF+E--