From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 88D663858D20 for ; Mon, 11 Mar 2024 19:38:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 88D663858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 88D663858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710185906; cv=none; b=RqYmmp5GosJzDf+XDIZj/MolwukBja4MM07vQCK46vk6nPAzofnzBqsgKsLSmGxhOU7yVDPPe/Njm+J3OJ35xwazXamzATqxd31EhpQ65rIww43cuweY5YkhTJS+PVhTuc2BDKLWcy2TSfvBglWCiXk6mVlPZmrx9O6QUgDv0y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710185906; c=relaxed/simple; bh=uUhus+jljjkbeGrZyRQw49ywtvJfDxcaxx4MZs0xSwA=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=L599Y+IKb3+Rmy3FKuatWLIzGU6I0tbnpsOZfjq+t62qqkTkdYHQa+EEes5ONvvfgHor64f1w9h0OZPUv7Zm/hMV0kJfXkWy5JR80xWYj2FbDRXmMgl31kHpBexwaI1Xx5rjwO9/3xiSQL7BJdF8qUkIHIPZzKhklCBWR0/MPls= 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 1rjlTc-00058V-2e for gdb@sourceware.org; Mon, 11 Mar 2024 15:38:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:To:From: Subject; bh=Ugw5nKS205mWnyDsVdJ9S6VeoRec7LB4NShp8sui4og=; b=VvQIPEgu7QoaR7JWG 2/Aav5jQNIsKH/9KZ//b2qHoUMpXm1hG3FgVTtCd4J9bGjY/zXNt4Ac8/4IsNnJcJtiGbOzdM2Pdb 8k8kqnA2LEPN/BSWKq1VZcTbmZ+MCqKokMapfvt55iq9cF6lLSUTLL6jwa7MK2iOBhUEPy7WQruIb aqmpcxqr/bwz21FWfx8ZaDfatdZ8CdpV7IHxZ7SbsFa0WfbkhAe0UO0Ljs/Y3a1ix5By8srM4GvF6 9A+UXlDguPqpYGIT6qCACr08X/cUCalOx7VKD96e2iRbYxRaxdhqcckYxLboKZt9coKqUZAjwHmqk Q05sZeYL1NEVrnbfg==; Message-ID: <7fcf12fbd4a106af488168d0e740e0d8ca9b3022.camel@gnu.org> Subject: Re: GDB 13.2: breakpoint at wrong line after unrelated change From: Paul Smith Reply-To: psmith@gnu.org To: gdb@sourceware.org Date: Mon, 11 Mar 2024 15:38:23 -0400 In-Reply-To: <4c3f986c-a562-4506-b382-c754678abcff@simark.ca> References: <7c064cc544bfe453a250ca58b4d5ebd97919178d.camel@gnu.org> <4c3f986c-a562-4506-b382-c754678abcff@simark.ca> Autocrypt: addr=psmith@gnu.org; prefer-encrypt=mutual; keydata=mQINBFgL1QsBEACuYjznLa3tNM8CNqUcGU80xmT1J3Mkc+derJTKrTpqvqBoQi0pSZFr1C4sqUR9E3ERoaAF6kahMywrDpWJgGDyjURskugDmnlGdtGgeL5tehXHiw/y1fh0XFP5S1KmPE4W1KTcHgcWJsoqIiRlZjZx950wowfrbApQnEAHOYhj5wSso1CJ5gXAghThR+QnbBg3NWj8yzo0OoDQjJRuISIlcKu+MQfJ2wV3Wmmg2gH8RIJCrqjc0DyvlqHIT4HtyRlnerEORKUbibudJLLjXOCBXIK/xj5ahLRMcKcEGmVv+f7PQxnBtZ/ew66AbCnO9qVvpXtS+7didkxoUYNWGF983Zfja3gntfbIE/HMrjC7jdk6tJcEddNPpMzytwcO2IQ0DOiokq+5xbhp52ycJProCc/pZQTflMO89hCMOdhrkuMYDtvUJalIRofts+bQ84h22niea6/ewtNAwWrF6fzr5Yn7qKyvOFTe+9x39NzS7k9mqYUOb72JbsZfQc9H86bF0b5LK4iTPr2T0yP482ITfbHt2CZS+fGMYgF+V3E6aer11L9+ecNrT91XrLdUr0SeiYW2scval+fUyISdDKN9odPt8b3TRRU20pQqx9ljTUFV8zZsE1UhLevbHXh1XBSfhcUa3CuEIh+NGb1ojGF/lzorSmbWEGIpgopRlC4sWQARAQABtCZQYXVsIEQuIFNtaXRoIDxwYXVsQG1hZC1zY2llbnRpc3QubmV0PokCOgQTAQoAJAIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCWAvbZQIZAQAKCRCAy3J6IMebsuPwD/9jYcpFxNzDpEw9u48U0dSWU4hG+cnyvXyYFa0ak3eTQJfdIDsRuP18cGL1DTZhBecq4m9ifPqQjhs51qhI6rFV2WVXeUhVrfUhKDleFw0dkx0CI2QahpTyowWfXF3nQNm4NGMFi4vIEkdDy/StNWfNo YQSk8aafRnFTBs0ufEX18OSVHQ2zZemtuUgGsYBTz7VTuSoXn8rAwMWA4nOgkocppgxx8MRVqoYbtuELPNJr9UveXVEmbgCyHUNGiEC0fXTdK5mmJxQnfOcE/tzBRYzlCwpE/83MndE1mM9jFiEmWwNTEOujs3juF/HGm/frUex2Xt3ZFyT9/nghh1kvbqL2ci8kre5jGJfECKqVA5juWlpDwac81wbqpzQjk7cgVxrXyJIYqnahhCHMFbCDMXZcRAdd4LGPFFVyBUP4yXMNH2GVSmcgYWfSpk+ETfBU0SpmVZnMXi6qm82/+tAmBTcd79OBQbBt7DU2k13Qtq/jRMB4RqDe9GJFKcd4FWjwnMzrUyJIa6CJgAdbkLeKtAGOumfDfpSzw6E75Z6t4qXyTxYn1BSwDcyIqBzPRh/W+empFou2kuPFFghfgac2vJj3tuztGgZ04j3CAU7ixKMiqrAlymncHXjDi1zIW7in8NsDR4/cz1lnObDRYta8WMI0tkPVNS01xnFkeKvaS88w7QeUGF1bCBELiBTbWl0aCA8cHNtaXRoQGdudS5vcmc+iQI3BBMBCgAhBQJYC9tLAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEIDLcnogx5uyOr0P/23tm3fmaLgHcx5f9YRlZIeWnLvhTCyhCMVYvSygFqKG3h/Yw3ldiC9Awv0+ThJ8OBhcR3zlfKdTDJUzZ7ArnYol3UQZ6MrX/VVM4VlH3TncAyEmPfGmjE/gx0RQXjyR8EYRCHruek7Cs+05CjVi7VRExOgndhHqOFnl9NqaijEjjST12z/8WzJV75yvV/4RLuNd9ouIqzMyeESmshnhol9T6b1WnA47XHjZTsreh/ryt3Ob6lZrtj8foJxXOxppwrsVfWqo/qhUzv+wPcblk4zsyjl8vrTfIzpunazckzRVOwkHW5YQJYZuTMkfSthyjQyUqKoG53WKKVq2pahccfumwA kqIdw50LigQiFOV36vZ97755NThvlgNpTSkIb3TfN7uM1X4a4y+xwTsrqPP0jdLiy1NdW14wb59xwcuGJlu2wsJx+TgrdZq428fbLH7sNc+ZeF2uikIhPrw3eskvwpeWgrJlWxqFW6nP1K9QWiRQMu7F2V4nMibS49pROyiZ0O6YWY/ypKj2Q9fPxm3jrrQCkjg/bY+JJod2v9Y8Ac71Xo35zFumJTAgQnQJn66ew7Ur7Tgg1oZNzjkqcBOEuvOoc4heBYnkHvs3o7LqIeHsOUksupyL90R7ef1w3wM9Ol9ZBv3p2qjCQPCXXSptNhXxk0SCu9bVmNJSVXYpS+uQINBFgL1QsBEACqdH+dixdbRlWMCk6JhdNrZFiOIKex1wViDGZVPGl/TnTHTkz9zofWRQCFW79zq3/ygQguvmQo6DBt3w7qUW0N5lsumQ1zpzmJLjdy5JanY8Qj7DnZraLAEMXAD+YsGvrMHD/znFQ9eJ5oV12TJ6tQ/wfqiHXmYaAGdLuto7258Bku68T2UP22ca05ysnEJFHfjEL5rfCqvFJFy8j169DbohZhiCL73IjN5fEbEb6VEANzKue0aK3W1Ls7E+HF9y8N41YzAwriQG/E/NylkcOjEAsj2W5tU9Xm4Hji9NPN504z/yRj1wKngbwoIX8eCqPvB+0+K548sAB8pUzEBnnAfdTYT/O6F+kL9cQfMrIo/eAiB4sT1Bh9j3goRjdJd1WM1mQErh0dXj+37vMfPldwxZ+yqw1VdGhd7NkqbRQ25Esv/RhZCkCacYqLUutm4Sw6zkpB1wX2rcDYqk8ZH8PgQGy6Bqh55VVra738e9LNCTLRz6fMMTDDKuKogXHIOY/ZQlOuw1iVT52rY9rvDbA1DAim4MrC+ZjWtP2PHYx/ZQW5jlJCJNRiA+tOsz68hCdJFRFI6EaHFg8QI7XmP6RlNdFwZySYJ5DZJosbZRKMKcayS/uldqnLNtzVmPSz81wQXtz E5VsEDWyotJGxJHOFWX9Q7NSl9DDMs4KtD87HgQARAQABiQIfBBgBCgAJBQJYC9ULAhsMAAoJEIDLcnogx5uy53AP/An/uB9hLFu1vXsJ/S9CAW7h8rYXPiRzjE8VZKyTkI9bxY0KXWDcQu4gdfgmxTyX8WvfOfV4NWAieZtEjOWkFF4kZjyHnyGvcoYTRpuTE5+4xGEaQum2JRGcqPCijOTPK+kqxcKKF6kN81Cu4/ft0dA5yhC/6huqEAaGA1PuT67DqEJbCnwT8H2bEChFNFHuTXpSX1kfoZU/7LXKW7VZtrz60A4omUluiaOTgwTpP9ph0GoroX4rxfnRu1I18VXCcLOXL4a4x9kJ7gMkhVIOc3SAYo1yoLfwSNHrrxQ1yGuN1e3LAwmdBY6F3JmYUPoAVGzqCAdbAOlZVfsV6B4G/I3qz9OMtYKznGGQcW5VSx6EFsPKAV9mh3MyU8UulSLkX/qTDW7UijvB8dFHZqKZSTfUlQlfGJs+f11eXAEjMP+JARY8YetAjZroEi5PtJk6hGIRcW/Wk6IaadFzb+yffSnduxXP7r9zFAikBaTTRtrmjslXa0FBLx5jTvE+5o6s0w6mIeAoujIKIl3S7QbPllcmgER4l1BgbNlppzIBE+6Bw1mcxOMvyk939IWVBizmllYTFR8I+2MDLIk66WASMK0x/28A3HF88sRAteKRKeMPjGEd0IvvVSCEn0/nxzWneLT50TnEQX1Uu6EKBATzqDgOxuO2jTG3wC6a2Wtxqy3SuQINBFgL288BEAC+Edgtl6Y/aj2PRogKgja7IRCnWbuoNP0RItSVvUWYRYE+/z6iBz/vS2bxX2bULlyjpY+bNWaAqe8a8pdAiM1vxC5oBMGXf1rVUcPY3EYyOwbPXs4UN2jlQ4hFV/qSBdEbuRPMV9/uXHtbr13mIzI6H9/UYfC7ZrdY68pbf1WpSPGUBxW/eOOo1Q/IsgEoyPsRj09RWIrUvpnk4ISM Wp6R/EOzyFw4D+IsLHvbp0iZq08SeTsC5/amUFf127tqewxeJ6yQEPK2QMU876dFlbKBgZmC1gLJrUN7BhruWXeoH0g9gVC02Ob7pscbTVuV0RxO9fIukoX7Tl2hA3bCphrMQdIaxMhFY6GOw0t3Vn963uzR4VIe9KzKaidJEVVQHrSQqApKwaYfhECMggd5es2+WfTWWqJTgFgcc6t+JAR7LxJc/0DXhVp/DGPH0flnlxb7yUNrs2AlJriitwY4jTK//Y8icLWiS9Xc9tU7SLUc9R52tZ6sOejnV9pFx0T08/OEmqEdCkAoc4ZSj77YwQH9CIZpgh07qEJ54ZxnlnmmGM1h6NZxaYXJNHw4FgAc4s3RDzsceLSD+zMo5hK0qJ13h7VObUBe8gHh4OlIHq/kLgZ9A6McEBuStjq3TVWQNleVAcge29ayB8n3LG8ScLKtPNH/p7g1p+0odtQ6zm+tQQARAQABiQREBBgBCgAPBQJYC9vPAhsCBQkSzAMAAikJEIDLcnogx5uywV0gBBkBCgAGBQJYC9vPAAoJEN6syq7beBN60/0QAIF1tphdahppA8/KTGXcyCyRqcvNHJtMnfkFgROxkmSAIHzgk/W8vC0DnGMdnsOKL7/E5mrX5LySLEAIP8S3brIi6cNtwMe0uKKZ7owBRheOcZfK44rvT3MX+fh+CZ2qj6aUtbdyBKszHnZ3BHoxlLVKyD2aso2ljyoIsDwLR5ifvIJsPQLAHRVcKSW5a4/UmNV4EoWWejsl085O516iE60IgnqrDDBLbSb7PYJ93Qz0TkaYMigw0WR6qRZHPlaKRjoSc3ekRiLEMM7/l2e6KypC5VAZOl4tMX664EVWRXjz2peW+210IT/+S2dV9KxL3M/osVuJD3iIZdwVgNsR463Ze+gxigpYYd4uyDIVN7TTMrP128wRCxU7fVMl3Q4ZqXCagpouUf9sacFOU6cBZvKhSBN7jdAq4ybEnAu50xgg2 sX6Cdwg28s6GqhPS0fiznoDnRFSs6CtLcyaKo3WicmAAKudTbN7F6wz0MV53tmyauohd2e8RwSmrNf1Y6Xz42RM4ZySYMlTAkAKY5st7c8zIjDREhK3t2ECRnnSnJL4yS4y9VenCHGCKty3OMOZ75V38zSWvUxyysIpjkVFwoxT/6wv76rIgF414YnlhxwmsmCAbkT1RTj/2vyVSRD4BM4AOsU4aqcuCj8N+TaPxIUar+uCevovBnIOU/lpSZ6qdE4P/1FmY7L5fJ95v73o4HVB+Ek+OSN4WpuU08V8XC5VqmlkpztrYrrRnWqTSFdTq7Fhl1m+Qh/2l6f7Xfc1T35tWSPCz8vYiMbUvqVGUA4//xKWExpkziUb65G7brXr3A9PNPRzKsAargwg9Q2Pe3ITSlAUB4Ee1pHR07mqSw0rHlGn9q/yYRO0qo80xChojCHso0E2sVgGEsXK3rCJPBBUXMYFup0tRJlpV2093pdKKj0ztzNT7fiFY9ZoW+lnn4KMX3+12XybMRoTHSYzHGM/w918GTRFFQ/WlAdlnDjnzA/Pab+og3kLflaoe7vr3di9UeHMvGJ130M9P7SX56YnZGvr8Xfc9EBu3XN4ieo3sfjmzRCQLOSaX0ll7AoFcT1yuAOf0JZoTZDbcZ3WDBuu3WgQZbfU7qt0E+rO0UX+a2GGTBHnssJHN3+FQAM96pi04KF0sgPWTYKY2BXpVrrHlK+1be8dtNJKbVUn0rzR9YqTWXZBPYknpvDRp+nteP3VRqEDBjdWzjcJ8/rDgFPMy+bHmmf1g8kDYoufFaJXq2cpsNGn132G2MZHJHQDze23x3TWx0fJovGAyGM1090fP2qeFOzK5kyDfRlccOehtBIGXK+agJPh3OBAJ+OyblSVZOib6w2JcjVi0WWLKHEB450iCMs/wqLA1i4Z+V46y8In 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.3 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 List-Id: On Mon, 2024-03-11 at 15:14 -0400, Simon Marchi wrote: > > I have noticed that if I only include the templated function > > definition but don't call it, then the problem doesn't happen. >=20 > When you say that, does it mean that you just define the templated > function, or do you manually instantiate it?=C2=A0 In other words, does i= t > cause any code to be generated? If I just define the templated function I don't see the issue. If I invoke the templated function, I get the problem. FYI I'm switching to the fmt library (if you're familiar with that) and the templated function invokes it; it's something like this: void criticalErrorV(fmt::string_view fmt, const char *file, int line, fmt::format_args args); template void criticalError(fmt::format_string fmt, const char* file, int line, Args &&...args) { criticalErrorV(fmt, file, line, fmt::make_format_args(args...)); } If I never call criticalError() then it works fine (or in my previous implementation, which used printf-style calls with stdarg, it worked fine as well). If I have some invocation of criticalError() somewhere in the translation unit, I get this problem. I haven't checked moving it around to see if it needs to be invoked before/after the "problem" method in the TU to get this behavior. > I don't really have an idea of what's happening, but you could try > showing what the "disas" command shows after hitting the breakpoint > in both cases (the `=3D>` should show where you are stopped, so where > the breakpoint was set). Good idea; here's what I get for the correct behavior: 0x000000000053209c <+0>: push %rbp 0x000000000053209d <+1>: mov %rsp,%rbp 0x00000000005320a0 <+4>: lea -0x10(%rsp),%rsp 0x00000000005320a5 <+9>: mov %rdi,-0x8(%rbp) 0x00000000005320a9 <+13>: mov %rsi,-0x10(%rbp) =3D> 0x00000000005320ad <+17>: mov -0x10(%rbp),%rax 0x00000000005320b1 <+21>: mov %rax,%rsi 0x00000000005320b4 <+24>: lea 0x17e9a9(%rip),%rax # 0x6b0a6= 4 0x00000000005320bb <+31>: mov %rax,%rdi 0x00000000005320be <+34>: mov $0x0,%eax 0x00000000005320c3 <+39>: call 0x52bc00 0x00000000005320c8 <+44>: nop 0x00000000005320c9 <+45>: mov %rbp,%rsp 0x00000000005320cc <+48>: pop %rbp 0x00000000005320cd <+49>: ret Here's what I get for the incorrect behavior: =3D> 0x00000000005320ee <+0>: push %rbp 0x00000000005320ef <+1>: mov %rsp,%rbp 0x00000000005320f2 <+4>: lea -0x10(%rsp),%rsp 0x00000000005320f7 <+9>: mov %rdi,-0x8(%rbp) 0x00000000005320fb <+13>: mov %rsi,-0x10(%rbp) 0x00000000005320ff <+17>: mov -0x10(%rbp),%rax 0x0000000000532103 <+21>: mov %rax,%rsi 0x0000000000532106 <+24>: lea 0x17e9d6(%rip),%rax # 0x6b0ae= 3 0x000000000053210d <+31>: mov %rax,%rdi 0x0000000000532110 <+34>: mov $0x0,%eax 0x0000000000532115 <+39>: call 0x52bc00 0x000000000053211a <+44>: nop 0x000000000053211b <+45>: mov %rbp,%rsp 0x000000000053211e <+48>: pop %rbp 0x000000000053211f <+49>: ret It seems to have given up and just picked the first instruction :) Here's the compile line args (removed extraneous stuff like warnings and preprocessor options): g++ -std=3Dgnu++20 -ggdb3 -fPIC -march=3Dhaswell -mtune=3Dintel \ -fno-omit-frame-pointer -O0 -pthread \ -o TestClass.o -c TestClass.cpp