|
|
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Зрравствуйте! При выполнении программы - <номер_процесса>Segmentation Fault (core dumped). Встретил упоминание в man cc ENVIRONMENT . . . STACKSIZE The executing program maintains a main memory stack for the master thread and distinct stacks for each slave thread. . . . Sometimes the compiler may generate a warning mes- sage that indicates a bigger stack size is needed. However, it may not be possible to know just how large to set it, except by trial and error, espe- cially if private/local arrays are involved. If the stack size is too small for a thread to run, the program will abort with a segmentation fault . менял - ставил 16K , 32K - всё то же. Видимо, копаю не там. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 12:02:06 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Конечно не там. Стек походу не причем. Где-то в программе идет обращение к мертвому указателю. Копай код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 12:09:42 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
gdb -c core (gdb)bt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:10:27 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Вово, бектрейс тоже хорошо поглядеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:14:08 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
не смейтесь что такое backtrace ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 13:28:42 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
http://shekel.jct.ac.il/cc-res/online-doc/gdb/gdb_43.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 17:03:14 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
на все приведённые команды (gdb, bt -c core) - один ответ: not found ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:35:07 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
down.ltdна все приведённые команды (gdb, bt -c core) - один ответ: not found gdb - отладчик такой. Я удивляюсь вообще, кто тебя пустил на *nix разрабатывать, если ты в нем ничего не понимаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:44:42 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Замечание справедливое, но у нас, собственно, ничего не разрабатывается. Есть прога на Pro*C на старом сервере(SunOS 5.7, Oracle7.3), которая выбирает данные из таблиц и запихивает в файл. Сервер на ладан дышит, поэтому и переношу. Программе лет 15, тех людей, конечно, уже нет, а прогу надо перенести на новый сервер (SunOS 5.9, Oracle 9.2), где ей предстоит пожить ещё n-ное количество лет. То, что gdb отладчик, понятно, непонятно, почему не запускается командой, про это я и спрашивал. Интесен ещё один момент. Один раз мне удалось получить, несмотря на кучу предупреждений, рабочую программу. Но второй раз, ничего не меняя, фокус не получился. А предупреждения были такие "outlic2007.c", line 760: warning: argument #1 is incompatible with prototype: prototype: pointer to const char : "/usr/include/iso/string_iso.h", line 70 argument : pointer to unsigned char (E_ARG_INCOMPATIBLE_WITH_ARG) исх.строка pwd.len = strlen(pwd.arr); после изменений pwd.len = strlen((char *)uid.arr); предупреждение пропадает то же самое с strcpy "outlic2007.c", line 762: warning: argument #1 is incompatible with prototype: prototype: pointer to char : "/usr/include/iso/string_iso.h", line 66 argument : pointer to unsigned char (E_ARG_INCOMPATIBLE_WITH_ARG) исх.строка strcpy(pwd.arr,"GROSSBOLT"); после изменений strcpy((char *)pwd.arr,"GROSSBOLT"); предупреждение пропадает Хотя в на SunOs 5.7 всё компилируется без предупреждений. Правда, там мы компилировали gcc-ом. У SunStudio более строгий компилятор? _______________ Ещё предупреждение "outlic2007.c", line 702: warning: old-style declaration or incorrect type for: main (E_OLD_STYLE_DECL_OR_BAD_TYPE) main (int argc, char *argv[]) поскольку в программе есть return 1 и return 0 поставил тип int int main (int argc, char *argv[]) предупреждение исчезло __________ остались такие предупреждение на строку в c-шной программе(после Pro*C) /* SQLLIB Prototypes */ extern sqlcxt (/*_ void **, unsigned int *, struct sqlexd *, struct sqlcxp * _*/); "outlic2007.c", line 117: warning: no explicit type given (E_NO_EXPLICIT_TYPE_GIVEN) какой тип? В общем, я в тупике. Проблема всё та же - Segmentation Fault (core dumped) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:51:16 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Отладчик на SUN называется dbx А компилятор там дай боже Да и просмотр стека тебе скорее всего не поможет, комнда просмотра стека - where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:22:33 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Вдогонку вопрос при компиляции вижу cc отрабатывает дважды. это нормально Pro*C/C++: Release 9.2.0.4.0 - Production on Thu Nov 1 14:04:20 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. System default option values taken from: /export/home/oracle/product/9.2/precomp /admin/pcscfg.cfg cc -xO3 -Xa -xstrconst -dalign -xF -xildoff -errtags=yes -v -xarch=v9 -xch ip=ultra3 -W2,-AKNR_S -Wd,-xsafe=unboundsym -Wc,-Qiselect-funcalign=32 -xcode= abs44 -Wc,-Qgsched-trace_late=1 -Wc,-Qgsched-T5 -xalias_level=weak -D_REENTRAN T -DSS_64BIT_SERVER -DBIT64 -DMACHINE64 -K PIC -DPRECOMP -I. -I/export/home/orac le/product/9.2/precomp/public -I/export/home/oracle/product/9.2/rdbms/public -I/ export/home/oracle/product/9.2/rdbms/demo -I/export/home/oracle/product/9.2/plsq l/public -I/export/home/oracle/product/9.2/network/public -DSLMXMX_ENABLE -DSLTS _ENABLE -D_SVID_GETTOD -D_REENTRANT -c outlic2007.c cc -xarch=v9 -o outlic2007.exe outlic2007.o -L/export/home/oracle/product/9.2/l ib/ -lclntsh `cat /export/home/oracle/product/9.2/lib/ldflags` `cat /export/ho me/oracle/product/9.2/lib/sysliblist` -R/export/home/oracle/product/9.2/lib -lai o -lposix4 -lm -lthread Press any key to continue... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:21:01 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
В смысле, там вопрос Это нормально, что cc появляется дважды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:22:59 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
-Летать пока не умеют, стрелять тоже. Но ОРЛЫ!!!(с) Нормально - первый проход компиляция ( ключик -с ) - второй проход линковка - из объктника и библиотек получается exe ЗЫ Интересно а во сколько условных енотов обходится такое портирование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:29:22 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
у нас госконтора. фен есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:36:13 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Чем портировать, дешевле переехать в виртуальную машину на новом железе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:37:15 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
типа, время вечерней расслабухи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:39:26 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Ага, только ты не обижайся, просто гиблое дело с такими знаниями портировать программку писанную на голом OCI, ложащуюся по 11 сигналу. OCI это гимн типу void*[*] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:44:29 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
какие обиды? relax! один-то раз заработала прога, всё выгрузила. проще уж на SQL-е сделать выборку и порубить символы конца строки. это на пожарный случай. где постваить ключик на отладку при компиляции -g ? использую стандартные demo_proc.mk и env_precomp.mk ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:50:49 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
А там же где ставится xarch=v9 прямо нарасти строчку и при компиляции -O3 убери. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:56:24 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
На SunOS вроде pstack команда core файл трейсит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 19:33:06 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Ну и что он там увидит, асемблерный код? Очень позновательно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 20:31:17 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
Кому как. Там можно посмотреть call stack сишных проциков грохнувшегося процесса. blindedНу и что он там увидит, асемблерный код? Очень позновательно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 20:41:21 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
несколько вхождений xarch=v9 и ни одного -O3. смотрел в env_precomp.mk можно поподробнее, где поставить -g? ____________________ bash-2.05$ pstack core core 'core' of 4470: outlic2007.exe osr207.dat ffffffff7d43d184 strcpy (ffffffff7fffcd78, 0, ffffffff7fffcd78, 0, 1001655d0, 1 ea) + 2dc 000000010000212c main (1eb, 1d9, 100105a20, 1001653d0, ffffffff7ffffac8, 1eb) + 8cc 000000010000121c _start (0, 0, 0, 0, 0, 0) + 17c Press any key to continue... osr207.dat - файл структуры таблицы, т.е. какие поля, какие форматы ______________________ ещё вопрос proc - "родной" прекомпилятор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 11:38:22 |
|
||
|
Segmentation Fault (core dumped) . Как победить?
|
|||
|---|---|---|---|
|
#18+
down.ltdнесколько вхождений xarch=v9 как это нет, вон у тебя в командной строчке down.ltd и ни одного -O3. смотрел в env_precomp.mk можно поподробнее, где поставить -g? ну ошибся -xO3 убрать Нет ну я что телепат? Можно подумать я твои make файлы вижу? down.ltd ____________________ bash-2.05$ pstack core core 'core' of 4470: outlic2007.exe osr207.dat ffffffff7d43d184 strcpy (ffffffff7fffcd78, 0, ffffffff7fffcd78, 0, 1001655d0, 1 ea) + 2dc 000000010000212c main (1eb, 1d9, 100105a20, 1001653d0, ffffffff7ffffac8, 1eb) + 8cc 000000010000121c _start (0, 0, 0, 0, 0, 0) + 17c Press any key to continue... osr207.dat - файл структуры таблицы, т.е. какие поля, какие форматы ______________________ Нехороший адрес, хотя черт его знает? down.ltd ещё вопрос proc - "родной" прекомпилятор? Родной для Oracle к С отношения не имеет и он тут не причем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 12:39:06 |
|
||
|
|

start [/forum/topic.php?fid=25&tid=1487526]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 326ms |

| 0 / 0 |
