crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Непонятный "вылет" программы., а должна была быть кросплатформенной...
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)


Это как же понимать? Области переменных смешались?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ЙаМайскЫйПчОЛ
  опции профиля:
сообщение 22.4.2009, 8:09
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 154
Регистрация: 10.7.2008
Из: СПб
Пользователь №: 232

Спасибо сказали: 7 раз(а)




Репутация:   5  


НУ ладно давай разбераться по пункта.
Я на 87% уверен что проблемма в первом аргументе либо в его типе либо в объявлении функции
Эта уверенность инстинктивная + основное что мне приходилось править при переводе приложения на линь - это ссылки и указатели.

В Твоем случае я вижу что мы имеем дело с FITS
немного погуглив
int ffpcls( fitsfile *fptr,   /* I - FITS file pointer                       */
            int  colnum,     /* I - number of column to write (1 = 1st col) */
            long  firstrow,  /* I - first row to write (1 = 1st row)        */
            long  firstelem, /* I - first vector element to write (1 = 1st) */
            long  nelem,     /* I - number of strings to write              */
            char  **array,   /* I - array of pointers to strings            */D
            int  *status)    /* IO - error status                           */
/*
  Write an array of string values to a column in the current FITS HDU.
*/
{
    int tcode, maxelem, hdutype, nchar;
    long twidth, incre, rownum, remain, next;
    long ii, jj, ntodo, tnull;
    OFF_T repeat, startpos, elemnum, wrtptr, rowlen;
    double scale, zero;
    char tform[20], *blanks;
    char message[FLEN_ERRMSG];
    char snull[20];   /*  the FITS null value  */
    tcolumn *colptr;

    double cbuff[DBUFFSIZE / sizeof(double)]; /* align cbuff on word boundary */
    char *buffer, *arrayptr;

    if (*status > 0)           /* inherit input status value if > 0 */
        return(*status);

    /* reset position to the correct HDU if necessary */
    if (fptr->HDUposition != (fptr->Fptr)->curhdu)
    {
        ffmahd(fptr, (fptr->HDUposition) + 1, NULL, status);
    }
    else if ((fptr->Fptr)->datastart == DATA_UNDEFINED)
    {
        if ( ffrdef(fptr, status) > 0)               /* rescan header */
            return(*status);
    }

обрати внимание на первую строчку кода и вызов ffmahd ИМХО такое объявление отличается от твоего на одну *
контрол-ц контрол-в из MSDN и готовых сырцов часто приводит к непониманию

сделай ТАК!
int ffopen(fitsfile *fptr, const char *filename, int iomode, int *status);

в объявлении функции и будет тебу счастие

а примеров подобного рода куча http://astro.phys.au.dk/ai43/toar/io/MOMF/...itsio/putcoll.c

Сообщение отредактировал ЙаМайскЫйПчОЛ - 22.4.2009, 8:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- NordWest   Непонятный "вылет" программы.   21.4.2009, 19:05
- - SABROG   Цитата(NordWest @ 21.4.2009, 20:05) Начин...   21.4.2009, 20:35
|- - NordWest   Цитата(SABROG @ 21.4.2009, 21:35) Цитата(...   21.4.2009, 22:26
- - Пчол   ты лучше код покажи а не результат: тк это обычная...   21.4.2009, 21:23
- - Он_Же   скорее всего неправльная работа с память: виндовый...   21.4.2009, 21:25
- - Яже   самая распространненая ошибка при работе с указате...   21.4.2009, 21:43
- - igor_bogomolov   Вот твоя ошибка. Так делать категорически нельзя. ...   21.4.2009, 22:34
|- - NordWest   Цитата(igor_bogomolov @ 21.4.2009, 23:34)...   21.4.2009, 23:30
- - SABROG   По сути тут область видимости временного объекта о...   21.4.2009, 22:59
- - Гость   а может дело в первом параметре функции ?   21.4.2009, 23:35
- - NordWest   Ага, только теперь при дебуге выдает ещё и это: Ци...   21.4.2009, 23:36
- - igor_bogomolov   Цитата(Гость_Гость_* @ 22.4.2009, 0:35) а...   21.4.2009, 23:38
- - Гость   fitsfile *fptr;//pointer ot FITSfile ты уверен что...   21.4.2009, 23:39
- - Гость   fptr=0x987b8e0, imgtype=0xbf827234, status=0xbf827...   21.4.2009, 23:43
- - Гость   я имелл в виду fptr=0x987b8e0 выбивается из контек...   21.4.2009, 23:46
- - igor_bogomolov   Цитата(Гость_Гость_* @ 22.4.2009, 0:43) ...   21.4.2009, 23:50
- - ЙаМайскЫйПчОЛ   ну гдето так))) а то даж залагиниться пришлось))))...   21.4.2009, 23:52
- - igor_bogomolov   [oftop] Так чтож сразу не залогинелся то? С конкре...   21.4.2009, 23:57
- - ЙаМайскЫйПчОЛ   да думал поспать лечь, хрен уснеш когда у людей ба...   21.4.2009, 23:59
- - igor_bogomolov   NordWest, погоди. Чет я не врубился. Это что, имел...   22.4.2009, 0:03
- - ЙаМайскЫйПчОЛ   всёёёёё мне такой херней еща завтра заниматься.......   22.4.2009, 0:09
- - NordWest   Цитата(igor_bogomolov @ 22.4.2009, 1:03) ...   22.4.2009, 0:43
- - ЙаМайскЫйПчОЛ   НУ ладно давай разбераться по пункта. Я на 87% уве...   22.4.2009, 8:09
- - NordWest   Цитата(ЙаМайскЫйПчОЛ @ 22.4.2009, 9:09) Н...   22.4.2009, 13:14


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 1:24