From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id XclVLqJN72VDwwIAWB0awg (envelope-from ) for ; Mon, 11 Mar 2024 14:29:54 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=TEuQLJlz; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A698B1E0D2; Mon, 11 Mar 2024 14:29:54 -0400 (EDT) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 8C62B1E0AC for ; Mon, 11 Mar 2024 14:29:52 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BC979385828B for ; Mon, 11 Mar 2024 18:29:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BC979385828B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1710181791; bh=jUSfI1jfqKq4p46YlECGv4wh/5Wx5OmK47H23uL+iMY=; h=Subject:To:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=TEuQLJlzLV06T7+CtZXAtfsE0w/I/4JCuxS022IaXBeRj8iVplSH+Ttw12vl2AMc4 U/EzmN4Hk4iO+1vpHhy9yhbHEhHpFwGA1TExtQGsWdTmAVJICnYZLY4yTEAc1F9HY4 iw/WBHpBJ3SLGsuasfNgkLT7mSn3cTplnHsBQm4U= Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id E71A83858D20 for ; Mon, 11 Mar 2024 18:29:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E71A83858D20 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E71A83858D20 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710181754; cv=none; b=Cu7JdlsaVQ8W5At35lyz0MWIMWv4F4uC0INTp1wnmdGwoGTlFBxWVGuCGe7qKQwhZua23yr5nU6RGdu1jB1o8fLH6xWLQN/xhFZ6dFJSlhKGmmvvy49s2Q94KHNdmc5eHeGhMIP1rdUJXvl7+E3exK/geeLg6189wP+8xJtmQi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710181754; c=relaxed/simple; bh=SmJrcahWidrq2tXq+Kut3f47C6X6hpzanM4EJlJL3/8=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=LScMoCMjKzFoyIJyGN+xYPJ+dfiz2lmKn4KD6ckPLnOogrVK5zZ5xE56FRfo2MQ3HxxXRCMzFf//7/FyGZdcKtWchadrhI897Se/YSF0r3d9/AkBfLB7+rg1vpIOhms6CwcX/ixOMYyzqMwqrc77Ms11LDIBHdaSDY92gbQ20JE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rjkOc-0000Y2-Kw for gdb@sourceware.org; Mon, 11 Mar 2024 14:29:12 -0400 Message-ID: <7c064cc544bfe453a250ca58b4d5ebd97919178d.camel@gnu.org> Subject: GDB 13.2: breakpoint at wrong line after unrelated change To: gdb@sourceware.org Date: Mon, 11 Mar 2024 14:28:43 -0400 Autocrypt: addr=psmith@gnu.org; prefer-encrypt=mutual; keydata=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 Organization: GNU's Not UNIX! Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.4 (by Flathub.org) MIME-Version: 1.0 X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Paul Smith via Gdb Reply-To: psmith@gnu.org Errors-To: gdb-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb" Hi all; I have an extremely odd error and I'm wondering if it rings any bells with anyone. If not I'll embark on an effort of upgrading my tools to see if it's fixed in newer versions and if not trying to file a bug. I have a C++ unit test program. This is GNU/Linux 64bit compiled with GCC 12.3 and I'm using GDB 13.2 to debug it. The error happens regardless of whether I compile with "-ggdb3 -O0" or with "-ggdb3 -O2". I haven't tried other optimization levels. In the current behavior, I can set a breakpoint at a function and GDB will stop at the first line of the function; for example: class TestClass : public ... { ... void breakpointTest(TestData* data) { printf("obj =3D %p\n", data); } ... If I run: (gdb) br TestClass::breakpointTest (gdb) run then GDB will stop at the printf line, and the "data" variable is set properly: Thread 1 "TestClass" hit Breakpoint 1, TestClass::breakpointTest (this=3D0x7ffff2a09a00, data=3D0x7ffff2aa7000) at TestClass.cpp:100 100 printf("obj =3D %p\n", data); Now if I make a change in my program in a completely different, irrelevant spot (this change creates a new templated function that uses Args... and perfect forwarding etc.: it's complex and uses the fmt library, but it is not being used at all in this function, or even in this class although it's used in a superclass), then after I do exactly the same thing above, GDB will stop at the wrong location. Instead of stopping at line 100 at the first line of the function it stops "before" the function is entered and the function arguments are not set yet (in the example below note the values of "this" and "data" are wrong). I have noticed that if I only include the templated function definition but don't call it, then the problem doesn't happen. I have to use the templated function somewhere in the translation unit, but it doesn't have to be anywhere near the function. In the failure case if I use "n" to go to the next line, THEN I get to the first line in the function and everything is set properly. Example: Thread 1 "TestClass" hit Breakpoint 1, TestClass::breakpointTest (this=3D0x0, data=3D0x21) at TestClass.cpp:98 98 void breakpointTest(TestData* data) (gdb) n 100 printf("obj =3D %p\n", txn); (gdb) fr #0 TestClass::breakpointTest (this=3D0x7ffff2a09a00, data=3D0x7ffff2aa70= 00) at TestClass.cpp:100 100 printf("obj =3D %p\n", data); Is anyone aware of any issue in GDB, or GCC, where using templated functions with perfect forwarding or other complex C++ template features could cause GDB's understanding of the starting line number of functions to be miscalculated like this? Is there a way for me to investigate what information GDB is looking at to determine where to set breakpoints when given a symbol name like this? Is this the same info available via addr2line etc.?