Я нашел следующий код в устаревшем проекте, который, кажется, вызывает некоторые проблемы:
for( ; *str; ++str )
*str = tolower(*str);
Проблема в том, что мы получаем SIGSEGV в тот момент, когда результат tolower () должен быть записан обратно в * str. Это то, что я получил при использовании отладки printf () и stracktrace, так как мы используем здесь JNI и, таким образом, подключение отладчика к библиотекам C для нас не работает.
Код не работает, если он скомпилирован с помощью gcc в Linux. Выполнение того же самого в Windows (для этой настройки кросс-платформенной платформы используется CMake) работает нормально.
Где я могу найти причину этого? Любые подсказки приветствуются :)
спасибо - Маркус
str
? Не строковая константа? - person Michael Krelin - hacker   schedule 10.04.2012