Означает ли это, что ошибка - это гейзенбуг, который не будет возникать, когда я использую valgrind, и поэтому valgrind здесь не используется?
blockquote>Нет, вы должны по-прежнему использовать Valgrind и исправлять все зарегистрированные ошибки. Поведение, которое вы описали, довольно распространено, и оно описано в FAQ Valgrind :
Когда программа работает под Valgrind, ее среда немного отличается от того, когда она выполняется изначально. Например, макет памяти отличается, и способ, которым запланированы потоки, отличается.
В большинстве случаев это не имеет никакого значения, но может, особенно если ваша программа глючит. Например, если ваша программа выйдет из строя, потому что она ошибочно обращается к незанятой памяти, возможно, что эта память не будет неадресной при запуске под Valgrind. В качестве альтернативы, если ваша программа имеет расы данных, они могут не отображаться в Valgrind.
blockquote>