Попытка разыскать Segfault где-то в MPI, я получил эту ошибку:Странная ошибка символ поиска в libstdC++
./mpitest: symbol lookup error: /usr/lib64/libstdc++.so.6: bàþ;@ BC_
-------------------------------------------------------------------
mpirun has exited due to process rank 2 with PID 8729 on ...
Во-первых, я привык получать ошибки подстановки, когда процесс загрузки, если путь к библиотеке неправильно. Но все это происходит до того, как процесс начинает выполняться. Это произошло в середине результата теста. Должны ли все символы быть разрешены загрузчиком во время выполнения до начала процесса?
Во-вторых, этот символ выглядит как мусор. Это, конечно, не обычный искаженный символ C++.
Возможно ли повреждение памяти (поскольку я отслеживаю segfault, скорее всего, что-то подобное происходит), чтобы испортить символы, подобные этому?
Это было скомпилировано с icpc 12.0.3 20110309 на машине Linux 2.6.18-194.32.1.el5 x86_64.
Возможно ли, что ваш процесс загружает символы динамически? В этом случае причиной такого мусора может быть повреждение памяти. Вы пробовали [valgrind] (http://valgrind.org/)? –
@ Джонас: Ну, ** мой ** код нет. Я не знаю, работает ли OpenMPI/Boost :: MPI. Проблема с запуском Valgrind заключается в том, что просто вызов MPI_Init_Thread дает примерно 25 000 ошибок, поэтому трудно понять, является ли причина этого причиной. – Lutorm