pthread_create segmentation fault

SCIF32

Следующий код:
pthread_t p;
printf("%d %d %d\n",Arg,&p,ProcessQuery);
pthread_create(&p,0,ProcessQueryvoid *)Arg);
Дает такой выход:
136077520 137359768 134577424
Segmentation fault
Непонятно, по какой причине сегфолт - в функцию тред не заходит.
bt в gdb выдает следующее:
0x00000000 in ?
0x080564de in ?
0x082ff198 in ?
0x00000000 in ?
0x08057d10 in ?
0x081c60d0 in ?
0x00000004 in ?
0x00000000 in ?
0xbffff6e8 in ?
0x08081a57 in ?
0x00000007 in ?
0x0041ffff in ?
0xbffff6f8 in ?
0x00000001 in ?
0x08091060 in ?
0x00000000 in ?
0xbffff708 in ?
0x08087b35 in ?
0x00000000 in ?
0x0809046c in ?
0xbffff718 in ?
0x08049785 in ?
0xb3150002 in ?
0x00000000 in ?
0xbffff738 in ?
0x08087a6b in ?
0x0000ffff in ?
0x40245c60 in __DTOR_END__ from /lib/tls/libc.so.6
0x00000000 in ?
0x40245c60 in __DTOR_END__ from /lib/tls/libc.so.6
0x00000001 in ?
0xbffff7cc in ?
0xbffff798 in ?
0x4012a904 in __libc_start_main from /lib/tls/libc.so.6
0x4012a904 in __libc_start_main from /lib/tls/libc.so.6
0x08049ce1 in ?
Что я сделал не так, где намудил?

sergey_m

Что за new нах? У тебя указатель, а не объект.

ppplva

О чем ты ?
Все работает, наверное memory corruption где-нибудь.

SCIF32

да, все должно работать и так.

а на счет memory corruption. наверное оно.
ну ладно пойду думать где.

SCIF32

расскажу, где я намудил:
как раз после дописывания некоторого кода решил я разбить проект на несколько частей -
собирать бинарник из объектных файлов.
при этом -lpthread просрался. добавил его - все заработало.
странно, почему при линковке ошибок не было?

evgen5555

>почему при линковке ошибок не было?
Shared Object?
Оставить комментарий
Имя или ник:
Комментарий: