Непонятный "вылет" программы., а должна была быть кросплатформенной... |
Здравствуйте, гость ( Вход | Регистрация )
Непонятный "вылет" программы., а должна была быть кросплатформенной... |
NordWest |
21.4.2009, 19:05
Сообщение
#1
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Пишем программу в Qt. Начинали под винду, теперь есть непреодолимое желание использовать её ещё и под Линуксом, там более кросплатформ и всё такое... Но программа сопротивляется.
Вылетает она из библиотеки, которая позволяет работать со специальными графическими файлами. При открытии такого файла, т.е. при вызове метода fits_open_file() из этой библиотеки, программа вылетает, и если в релизе она это делает молча, то в дебуг-варианте в консоль выдается следующее: CODE Scope for 7037: Symbol fptr is a variable with multiple locations, length 4. Symbol imgtype is a variable with multiple locations, length 4. Symbol status is a variable with multiple locations, length 4. Symbol tstatus is a variable with multiple locations, length 4. Symbol lngscale is a variable with multiple locations, length 4. Symbol bscale is a variable with multiple locations, length 8. Symbol bzero is a variable with multiple locations, length 8. Symbol min_val is a variable in register st3, length 8. Symbol max_val is a variable in register st1, length 8. (gdb) Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) Это как же понимать? Области переменных смешались? |
|
|
SABROG |
21.4.2009, 20:35
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Гость_Пчол_* |
21.4.2009, 21:23
Сообщение
#3
|
Гости |
ты лучше код покажи а не результат: тк это обычная ошибка сегментации и причин возникновения куча
|
|
|
Гость_Он_Же_* |
21.4.2009, 21:25
Сообщение
#4
|
Гости |
скорее всего неправльная работа с память: виндовый стиль программирования слишком расслабляет
|
|
|
Гость_Яже_* |
21.4.2009, 21:43
Сообщение
#5
|
Гости |
самая распространненая ошибка при работе с указателями и ссылками, хорошенько проверьте работу динамических элементов, особенно контейнеров и повышенное внимание параметрам функции
MVS + их компилер разрешает такие вещи от которых gcc жутко тянет блевать |
|
|
NordWest |
21.4.2009, 22:26
Сообщение
#6
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Начинали под винду, теперь есть непреодолимое желание использовать её ещё и под Линуксом, А под виндой какой компилятор используется? mingw32-make Цитата ты лучше код покажи а не результат: тк это обычная ошибка сегментации и причин возникновения куча
Объявление функции такое:
|
|
|
igor_bogomolov |
21.4.2009, 22:34
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Вот твоя ошибка. Так делать категорически нельзя. fname у тебя невалиден.
char *fname = fitsFileName.toAscii().data(); подробно здесь Сообщение отредактировал igor_bogomolov - 21.4.2009, 22:37 |
|
|
SABROG |
21.4.2009, 22:59
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
По сути тут область видимости временного объекта ограниченна таким образом:
Цитата char *fname = (fitsFileName.toAscii().data());
|
|
|
NordWest |
21.4.2009, 23:30
Сообщение
#9
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Вот твоя ошибка. Так делать категорически нельзя. fname у тебя невалиден. char *fname = fitsFileName.toAscii().data(); подробно здесь Делал так:
И так:
И так:
Но никак... Так как? |
|
|
Гость_Гость_* |
21.4.2009, 23:35
Сообщение
#10
|
Гости |
а может дело в первом параметре функции ?
|
|
|
Текстовая версия | Сейчас: 6.10.2024, 19:18 |