On 2026-Feb-23, Bryan Green wrote:

> I have implemented DuplicateHandle and closed the handle in the
> appropriate places.  I also reset backtrace_process to NULL if
> SymInitialize() fails.  Patch is attached.

Hmm, should then backtrace_cleanup() cope with the case where it's NULL?

Also, I wonder what happens if one "backtraceable" error occurs, and we
fail to SymInitialize(), then another backtraceable error occurs.
Should we do the DuplicateHandle()+SymInitialize() dance again, or
should we just give up?  The current implementation does the former, I
think; but the latter is also easily achievable by setting
backtrace_symbols_initialized to true and leaving backtrace_process as
NULL; then this case can be detected specifically in set_backtrace() and
treated as a case where we just return NULL before attempting anything
else.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/


Reply via email to