Исключение, генерируемое во время выполнения valgrind, но не при непосредственном вызове программы - PullRequest
1 голос
/ 23 февраля 2012

У меня очень странная проблема, и я понимаю, что может быть трудно диагностировать издалека.Но любые подсказки были бы полезны.

Сказав это, вот моя проблема:

Когда я запускаю valgrind для выполнения моей программы, возникает исключение.Тем не менее, когда я вызываю программу непосредственно из оболочки, она работает нормально.

Я пытался использовать vgdb от valgrind, чтобы выяснить причину возникновения этого исключения.Но это позволяет мне исследовать переменные только после возникновения исключения, так как я не нашел хорошего способа запустить gdb после того, как я подключил его к valgrind (без использования continue) и прошел по коду.

Я уже пытался воссоздать только тот сегмент кода, в котором выдается исключение, но используя то же содержимое переменной, я не вызываю исключение.

Я должен добавить, что я делаю этона виртуальной машине VMWare Workstation 8.0.1 с Ubuntu 11.10 и gcc 4.6.1, valgrind 3.7.0, gdb 7.3.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 23 февраля 2012

Всего несколько идей:

  1. отсутствует параметр командной строки при вызове вашей программы через valgrind - возможно, есть специальный способ передачи такого параметра в вашу программу

  2. другое поведение во время выполнения вашей программы, когда она выполняется в valgrind.valgrind является своего рода отладчиком, поэтому, возможно, потоки запланированы в другом порядке, и части вашего кода могут работать медленнее.Может быть, это вызывает ошибку, похожую на состояние гонки.

Можно ли разместить здесь некоторый код, особенно в месте, где возникает исключение?

...