
py = '3.14', mode = 'C'

    @requires_sudo
    @pytest.mark.parametrize("mode", ["", "c", "C", "Cc"])
    @allpythons()
    def test_valgrind_attach(py, mode):
        with run_python(py, target("sleepy.py"), "2") as p:
            result = valgrind(["-p", str(p.pid)], mode)
>           assert result.returncode == 0, "\n".join((result.stdout, result.stderr))
E           AssertionError: 
E             ==3811== Memcheck, a memory error detector
E             ==3811== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
E             ==3811== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
E             ==3811== Command: src/austin -Ci 1ms -o /dev/null -p 3810
E             ==3811== 
E              [1m              _   _       [0m
E              [1m __ _ _  _ __| |_(_)_ _   [0m
E              [1m/ _` | || (_-<  _| | ' \  [0m
E              [1m\__,_|\_,_/__/\__|_|_||_| [0m  [1;36m4.1.0 [0m [gcc 13.3.0]
E             
E             🐍 Parent process [ [0;36m3810 [0m]  [1mPython [0m version:  [1;33m3.14.5 [0m
E             ==3811== Conditional jump or move depends on uninitialised value(s)
E             ==3811==    at 0x12D7D8: py_thread__resolve_name (py_thread_name.h:397)
E             ==3811==    by 0x12D7D8: py_thread__read_with_stack_remote (py_thread.c:562)
E             ==3811==    by 0x11ACAA: _py_proc__sample_threads (py_proc.c:1265)
E             ==3811==    by 0x123414: _py_proc__sample_interpreter (py_proc.c:1393)
E             ==3811==    by 0x123414: py_proc__sample (py_proc.c:1422)
E             ==3811==    by 0x113897: py_proc_list__sample (py_proc_list.c:181)
E             ==3811==    by 0x10D9C6: do_child_processes (austin.c:212)
E             ==3811==    by 0x10DDCE: austin (austin.c:343)
E             ==3811==    by 0x10BB2C: main (austin.c:415)
E             ==3811== 
E             
E             📈  [1mSampling Statistics [0m
E             
E                   Total duration [0;30m . . . . . .  [0m [1m3.64s [0m
E                   Average sampling rate [0;30m  . .  [0m [1m991.97 Hz [0m
E                   Error rate [0;30m . . . . . . . .  [0m [1m0/3611 [0m ( [1m0.00% [0m)
E             ==3811== 
E             ==3811== FILE DESCRIPTORS: 4 open (3 std) at exit.
E             ==3811== Open AF_UNIX socket 3: <unknown>
E             ==3811==    at 0x4A7931B: socket (syscall-template.S:120)
E             ==3811==    by 0x4A74378: openlog_internal (syslog.c:349)
E             ==3811==    by 0x4A74A25: __vsyslog_internal (syslog.c:281)
E             ==3811==    by 0x112AE2: vsyslog (syslog.h:49)
E             ==3811==    by 0x112AE2: _log_writer (logging.c:60)
E             ==3811==    by 0x112AE2: _log_writer (logging.c:56)
E             ==3811==    by 0x112AE2: log_d (logging.c:166)
E             ==3811==    by 0x10BB81: main (austin.c:436)
E             ==3811== 
E             ==3811== 
E             ==3811== HEAP SUMMARY:
E             ==3811==     in use at exit: 0 bytes in 0 blocks
E             ==3811==   total heap usage: 33,715 allocs, 33,715 frees, 18,248,997 bytes allocated
E             ==3811== 
E             ==3811== All heap blocks were freed -- no leaks are possible
E             ==3811== 
E             ==3811== Use --track-origins=yes to see where uninitialised values come from
E             ==3811== For lists of detected and suppressed errors, rerun with: -s
E             ==3811== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
E             
E           assert 42 == 0
E            +  where 42 = CompletedProcess(args=['valgrind', '--error-exitcode=42', '--leak-check=full', '--show-leak-kinds=all', '--errors-for-leak-kinds=all', '--track-fds=yes', 'src/austin', '-Ci', '1ms', '-o', '/dev/null', '-p', '3810'], returncode=42, stdout='', stderr="==3811== Memcheck, a memory error detector\n==3811== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.\n==3811== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info\n==3811== Command: src/austin -Ci 1ms -o /dev/null -p 3810\n==3811== \n\x1b[1m              _   _      \x1b[0m\n\x1b[1m __ _ _  _ __| |_(_)_ _  \x1b[0m\n\x1b[1m/ _` | || (_-<  _| | ' \\ \x1b[0m\n\x1b[1m\\__,_|\\_,_/__/\\__|_|_||_|\x1b[0m \x1b[1;36m4.1.0\x1b[0m [gcc 13.3.0]\n\n🐍 Parent process [\x1b[0;36m3810\x1b[0m] \x1b[1mPython\x1b[0m version: \x1b[1;33m3.14.5\x1b[0m\n==3811== Conditional jump or move depends on uninitialised value(s)\n==3811==    at 0x12D7D8: py_thread__resolve_name (py_thread_name.h:397)\n==3811==    by 0x12D7D8: py_thread__read_with_stack_remote (py_thread.c:562)\n==3811==    by 0x11ACAA: _py_proc__sample_threads (py_proc.c:1265)\n==3811==    by 0x123414: _py_proc__sample_interpreter (py_proc.c:1393)\n==3811==    by 0x1234...x1b[0m\n      Average sampling rate\x1b[0;30m  . . \x1b[0m\x1b[1m991.97 Hz\x1b[0m\n      Error rate\x1b[0;30m . . . . . . . . \x1b[0m\x1b[1m0/3611\x1b[0m (\x1b[1m0.00%\x1b[0m)\n==3811== \n==3811== FILE DESCRIPTORS: 4 open (3 std) at exit.\n==3811== Open AF_UNIX socket 3: <unknown>\n==3811==    at 0x4A7931B: socket (syscall-template.S:120)\n==3811==    by 0x4A74378: openlog_internal (syslog.c:349)\n==3811==    by 0x4A74A25: __vsyslog_internal (syslog.c:281)\n==3811==    by 0x112AE2: vsyslog (syslog.h:49)\n==3811==    by 0x112AE2: _log_writer (logging.c:60)\n==3811==    by 0x112AE2: _log_writer (logging.c:56)\n==3811==    by 0x112AE2: log_d (logging.c:166)\n==3811==    by 0x10BB81: main (austin.c:436)\n==3811== \n==3811== \n==3811== HEAP SUMMARY:\n==3811==     in use at exit: 0 bytes in 0 blocks\n==3811==   total heap usage: 33,715 allocs, 33,715 frees, 18,248,997 bytes allocated\n==3811== \n==3811== All heap blocks were freed -- no leaks are possible\n==3811== \n==3811== Use --track-origins=yes to see where uninitialised values come from\n==3811== For lists of detected and suppressed errors, rerun with: -s\n==3811== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)\n").returncode

test/integrity/test_valgrind.py:72: AssertionError
