| From: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
|---|---|
| To: | Bryan Green <dbryan(dot)green(at)gmail(dot)com> |
| Cc: | Euler Taveira <euler(at)eulerto(dot)com>, Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: [PATCH] Add Windows support for backtrace_functions (MSVC only) |
| Date: | 2026-02-09 17:17:25 |
| Message-ID: | 202602091656.sxosgjxnc42l@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2025-Nov-01, Bryan Green wrote:
> Done. Now the code prints symbol+offset+address first, then conditionally
> appends line info if both SymGetLineFromAddrW64 succeeds and the filename
> conversion succeeds. This eliminates the duplication.
Thanks!
I was a bit surprised that you were doing elog(WARNING) for some
problematic conditions when trying to write the backtrace. I think that
would work fine, because our elog.c stuff is all supposed to be
reentrant ... yet I think it's going to be odd (assuming it ever
happens). I think we should instead just print the diagnostics message
to the backtrace string, where it will be displayed together with the
main error being processed, in the place where the backtrace would be.
This applies particularly when SymFromAddrW() fails: instead of printing
the elog(WARNING) in a separate error entry, we would still print the
function address in the correct spot of the backtrace with a small
diagnostics about the symbol not being found. ... I think.
What do *you* think?
I also made the backtrace_cleanup() function exist always, but on
non-win32 builds it's unused, so I tagged it as such.
Github is down at the moment, so I don't know if this actually compiles.
0001 is your patch (I may have pgindented it, not sure), 0002 are my
changes.
--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
| Attachment | Content-Type | Size |
|---|---|---|
| v7-0001-Add-backtrace-support-for-Windows-using-DbgHelp-A.patch | text/x-diff | 7.3 KB |
| v7-0002-fixups.patch | text/x-diff | 5.7 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrei Lepikhov | 2026-02-09 17:22:17 | Subquery pull-up increases jointree search space |
| Previous Message | Nathan Bossart | 2026-02-09 17:05:50 | Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible |