mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
tools: improve valgrind support
- Generate and use a list of suppressions that reduce noisiness for known (non-)issues. - Use `--zero-fill-buffers` for tests, as they sometimes use `Buffer.allocUnsafe()` and valgrind reports that as usage of uninitialized memory. PR-URL: https://github.com/nodejs/node/pull/25498 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
0b50972e6c
commit
9e9890a8ff
@ -37,7 +37,9 @@ NODE_ROOT = path.dirname(path.dirname(path.abspath(__file__)))
|
|||||||
VALGRIND_ARGUMENTS = [
|
VALGRIND_ARGUMENTS = [
|
||||||
'valgrind',
|
'valgrind',
|
||||||
'--error-exitcode=1',
|
'--error-exitcode=1',
|
||||||
'--smc-check=all',
|
'--smc-check=all-non-file',
|
||||||
|
'--suppressions=' + path.join(NODE_ROOT, 'tools', 'valgrind.supp'),
|
||||||
|
'--gen-suppressions=all',
|
||||||
]
|
]
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
@ -50,7 +52,8 @@ if not path.exists(executable):
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# Compute the command line.
|
# Compute the command line.
|
||||||
command = VALGRIND_ARGUMENTS + [executable] + sys.argv[2:]
|
command = VALGRIND_ARGUMENTS + [executable, '--zero-fill-buffers']
|
||||||
|
command += sys.argv[2:]
|
||||||
|
|
||||||
# Run valgrind.
|
# Run valgrind.
|
||||||
process = subprocess.Popen(command, stderr=subprocess.PIPE)
|
process = subprocess.Popen(command, stderr=subprocess.PIPE)
|
||||||
|
106
tools/valgrind.supp
Normal file
106
tools/valgrind.supp
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{
|
||||||
|
<PW_trace_event>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN4node12_GLOBAL__N_1L20PlatformWorkerThreadEPv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<tracing_group>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v88platform7tracing17TracingController31GetCategoryGroupEnabledInternalEPKc
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<locker_is_active>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v86Locker8IsActiveEv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<locker_initialize>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v86Locker10InitializeEPNS_7IsolateE
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<set_embedded_blob>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v88internal7Isolate15SetEmbeddedBlobEPKhj
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<set_stack_limits>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v88internal4Heap14SetStackLimitsEv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<current_embedded_blob_size>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v88internal7Isolate23CurrentEmbeddedBlobSizeEv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<current_embedded_blob>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:_ZN2v88internal7Isolate19CurrentEmbeddedBlobEv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<epoll_invalid_param>
|
||||||
|
Memcheck:Param
|
||||||
|
epoll_ctl(event)
|
||||||
|
fun:epoll_ctl
|
||||||
|
fun:uv__io_poll
|
||||||
|
...
|
||||||
|
obj:/home/sqrt/src/node/master/out/Release/node
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<frame_ptr_ne>
|
||||||
|
Memcheck:Cond
|
||||||
|
...
|
||||||
|
fun:_ZN2v88internal9ExitFrame23GetStateForFramePointerEmPNS0_10StackFrame5StateE
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<debug_signal_thread_stack_storage>
|
||||||
|
Memcheck:Leak
|
||||||
|
match-leak-kinds: possible
|
||||||
|
...
|
||||||
|
fun:pthread_create*
|
||||||
|
fun:_ZN4node9inspector12_GLOBAL__N_1L23StartDebugSignalHandlerEv
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<copyfile_ioctl>
|
||||||
|
Memcheck:Param
|
||||||
|
ioctl(generic)
|
||||||
|
fun:*
|
||||||
|
fun:uv__fs_copyfile
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<epoll_pwait>
|
||||||
|
Memcheck:Param
|
||||||
|
epoll_pwait(sigmask)
|
||||||
|
fun:*
|
||||||
|
fun:uv__io_poll
|
||||||
|
...
|
||||||
|
}
|
||||||
|
{
|
||||||
|
<platform_worker_threads_uv_loop_close_after_async_send>
|
||||||
|
Helgrind:Race
|
||||||
|
...
|
||||||
|
fun:uv_loop_close
|
||||||
|
fun:_ZN4node18CheckedUvLoopCloseEP9uv_loop_s
|
||||||
|
fun:_ZZN4node23WorkerThreadsTaskRunner20DelayedTaskScheduler5StartEvENUlPvE_4_FUNES2_
|
||||||
|
...
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user