From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29366 invoked by alias); 28 Sep 2013 07:48:57 -0000 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org Received: (qmail 29353 invoked by uid 89); 28 Sep 2013 07:48:56 -0000 Received: from bart.luffy.cx (HELO bart.luffy.cx) (78.47.78.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sat, 28 Sep 2013 07:48:56 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.0 required=5.0 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.3.2 X-HELO: bart.luffy.cx Received: from bart.luffy.cx (localhost [127.0.0.1]) by bart.luffy.cx (Postfix) with ESMTP id 9DB5414946; Sat, 28 Sep 2013 09:48:49 +0200 (CEST) Received: from guybrush.luffy.cx (unknown [78.198.208.113]) by bart.luffy.cx (Postfix) with ESMTPS id 4CD2D14063; Sat, 28 Sep 2013 09:48:49 +0200 (CEST) Received: by guybrush.luffy.cx (Postfix, from userid 1000) id 34D9A12D7; Sat, 28 Sep 2013 09:48:48 +0200 (CEST) From: Vincent Bernat To: "Frank Ch. Eigler" Cc: systemtap@sourceware.org Subject: Re: semantic error: not accessible at this address References: <87ioxmf2e9.fsf@guybrush.luffy.cx> <8738opg9ym.fsf@guybrush.luffy.cx> <20130927230432.GA32221@redhat.com> <87wqm1etsz.fsf@guybrush.luffy.cx> <20130927232529.GB32221@redhat.com> <87pprtesfe.fsf@guybrush.luffy.cx> <20130928000247.GC32221@redhat.com> Date: Sat, 28 Sep 2013 07:48:00 -0000 In-Reply-To: <20130928000247.GC32221@redhat.com> (Frank Ch. Eigler's message of "Fri, 27 Sep 2013 20:02:47 -0400") Message-ID: <871u49e68v.fsf@guybrush.luffy.cx> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2013-q3/txt/msg00398.txt.bz2 =E2=9D=A6 28 septembre 2013 02:02 CEST, "Frank Ch. Eigler" =C2=A0: >> > The -mfentry-compensation code should cause you to be seeing some >> > messages like this: >> > >> > retrying variable location-list lookup at address pc+5 >>=20 >> OK > > Yup, the entry below confirms it: > > >> >> [...] >> 005ec5ff ffffffff811b42b5 ffffffff811b42eb (DW_OP_reg5 (rdi)) >> 005ec5ff ffffffff811b42eb ffffffff811b43e8 (DW_OP_reg3 (rbx)) >> 005ec5ff ffffffff811b43fa ffffffff811b44a9 (DW_OP_reg3 (rbx)) >> 005ec5ff > > Your vfs_write starts at 0xffffffff811b42b0, and "file" comes into scope > five bytes later. This is the PR15123 scenario. Does your environment > by any chance include $PR15123_DISABLE? If so, unset that. If not, > maybe it's time to debug dwflpp.cxx:translate_location, line 2411-ish. I don't hit this location. Should I hit it with "stap --vp 03 -L 'kernel.function("vfs_write")'"? I have set the breakpoint to dwflpp::pr15123_retry_addr instead. I get this: (gdb) continue Continuing. Breakpoint 2, dwflpp::pr15123_retry_addr (this=3D0x206c880, pc=3D1844674407= 1580631728, die=3D0x7fffffffa6c0) at dwflpp.cxx:3756 3756 { (gdb) n 3773 if (getenv ("PR15123_DISABLE")) (gdb)=20 3756 { (gdb)=20 3774 return 0; (gdb)=20 3773 if (getenv ("PR15123_DISABLE")) (gdb)=20 3778 dwarf_diecu (die, &cudie, NULL, NULL); (gdb)=20 3779 if (! dwarf_attr_integrate(&cudie, DW_AT_producer, &cudie_produce= r)) (gdb)=20 3782 const char* producer =3D dwarf_formstring(&cudie_producer); (gdb)=20 3783 if (!producer) (gdb)=20 3785 if (! strstr(producer, "-mfentry")) (gdb) print producer $1 =3D 0x7fffee850aaa "GNU C 4.6.3" (gdb) n 3812 } (gdb)=20 dwarf_derived_probe::saveargs (this=3D0x434f210, q=3D..., scope_die=3D, dwfl_addr=3D18446744071580631728) at tapsets.cxx:4701 4701 if (!dwfl_addr2 || (!(dwarf_getlocation_addr(&a= ttr_mem, dwfl_addr2, &expr, (gdb) bt #0 dwarf_derived_probe::saveargs (this=3D0x434f210, q=3D..., scope_die=3D<= optimized out>, dwfl_addr=3D18446744071580631728) at tapsets.cxx:4701 #1 0x00000000004c6a2b in dwarf_derived_probe::dwarf_derived_probe (this=3D= 0x434f210, funcname=3D..., filename=3D..., line=3D459, module=3D..., sectio= n=3D..., dwfl_addr=3D18446744071580631728, addr=3D1786088, q=3D..., scope_d= ie=3D0x42093c8) at tapsets.cxx:4543 #2 0x00000000004c779d in dwarf_query::add_probe_point (this=3D0x7fffffffb9= 20, dw_funcname=3D..., filename=3D0x40d3d58 "/home/bernat/src/linux-lts-sau= cy-3.11.0/fs/read_write.c", line=3D459, scope_die=3D0x42093c8, addr=3D18446= 744071580631728) at tapsets.cxx:1310 #3 0x00000000004c7bda in query_statement (func=3D..., file=3D, line=3D, scope_die=3D, stmt_addr=3D, q=3D0x7fffffffb920) at tapsets.cxx:1397 #4 0x00000000004c7d63 in query_func_info (entrypc=3D18446744071580631728, = fi=3D..., q=3D0x7fffffffb920) at tapsets.cxx:1599 #5 0x00000000004c81df in query_cu (cudie=3D, arg=3D0x7fffff= ffb920) at tapsets.cxx:1887 #6 0x00000000004c86db in dwarf_query::query_module_functions (this=3D0x7ff= fffffb920) at tapsets.cxx:1944 #7 0x00000000004c98f3 in dwarf_query::query_module_dwarf (this=3D0x7ffffff= fb920) at tapsets.cxx:981 #8 0x00000000004cf398 in dwarf_query::handle_query_module (this=3D0x7fffff= ffb920) at tapsets.cxx:1092 #9 0x00000000004bdc47 in query_module (mod=3D0x206f0c0, name=3D0x2064cb0 "= kernel", addr=3D18446744071578845184, arg=3D0x7fffffffb920) at tapsets.cxx:= 2131 #10 0x00007ffff7bbe080 in dwfl_getmodules () from /usr/lib/x86_64-linux-gnu= /libdw.so.1 #11 0x00000000004cc1f5 in dwarf_builder::build (this=3D0x2064aa0, sess=3D..= ., base=3D0x1fd4250, location=3D0x1f7b910, parameters=3D..., finished_resul= ts=3D...) at tapsets.cxx:7139 #12 0x0000000000462cbe in match_node::find_and_build (this=3D0x20656b0, s= =3D..., p=3D0x1fd4250, loc=3D0x1f7b910, pos=3D2, results=3D...) at elaborat= e.cxx:473 #13 0x0000000000462d41 in match_node::find_and_build (this=3D0x2061550, s= =3D..., p=3D0x1fd4250, loc=3D0x1f7b910, pos=3D1, results=3D...) at elaborat= e.cxx:639 #14 0x0000000000462d41 in match_node::find_and_build (this=3D0x81eb10, s=3D= ..., p=3D0x1fd4250, loc=3D0x1f7b910, pos=3D0, results=3D...) at elaborate.c= xx:639 #15 0x00000000004639a6 in derive_probes (s=3D..., p=3D0x1fd4250, dps=3D...,= optional=3Dfalse, rethrow_errors=3Dfalse) at elaborate.cxx:995 #16 0x00000000004666d9 in semantic_pass_symbols (s=3D...) at elaborate.cxx:= 1625 #17 0x000000000046793c in semantic_pass (s=3D...) at elaborate.cxx:1979 #18 0x0000000000412c45 in passes_0_4 (s=3D...) at main.cxx:746 #19 0x000000000040e207 in main (argc=3D, argv=3D) at main.cxx:1103 So, no "-mfentry" in "producer" variable. Is that expected? --=20 Treat end of file conditions in a uniform manner. - The Elements of Programming Style (Kernighan & Plauger)