linuxÏß³Ì(pthread)±à³ÌÖеÄsegmentation fault£¡£¡
linuxÏß³Ì(pthread)±à³ÌÖеÄsegmentation fault£¡£¡
Posted on ÐÇÆÚÎå, 3ÔÂ 27th, 2009 at 10:28 ÏÂÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/03/27/pthread-segmentation-fault/
¼Ìsocket bad addres ´íÎóÖ®ºó£¬ÔÚ´´½¨Ï̡߳¾pthread_create()¡¿µÄʱºòÓÖ³öÏÖÁË segmentation fault¡£
´íÎóÓï¾äÈçÏ£º
pthread_create(&dec_tid,NULL, (void *)&encode, (void *)&cmd);
encode ÉùÃ÷ÈçÏ£º
int encode(void *arg);
¿ªÊ¼ÎÒÏëµÄÊÇ£¬»á²»»áÊÇencodeÇ°Ãæ²»ÓüÓ&ÄØ£¿°´ÕÕÉùÃ÷¶¨Ò壺
pthread_create(&tid, &attr, (void *)myfunction, myarg);
µÚÈý¸ö²ÎÊý¾ÍÊǺ¯ÊýÃû¶øÒÑ£¬ÊÇΪÁ˱íÃ÷Ï̺߳¯ÊýµÄÈë¿ÚµØÖ·¡£µ«ÊÇ£¬¿´µÄfreescaleÌṩµÄ²Î¿¼³ÌÐòÖÐÓÐÔ´ÂëÊÇÕâÑùµÄ£º
pthread_create(&sigtid, NULL, (void *)&signal_thread, NULL);
Ò²¾ÍÊÇ˵£¬¿ÉÒ԰ѵÚÈý¸ö²ÎÊýÒ²¼´º¯ÊýÃûÇ°Ãæ¼ÓÉÏ&£¬Á½¸öЧ¹ûÒ»Ñù¡£ÎªÁ˼ìÑéµ½µ×ʲôµØ·½´íÎ󣬻¹ÊǸÄÁËһϣº
pthread_create(&dec_tid,NULL, (void *)encode, (void *)&cmd);
°ÑencodeÇ°Ãæ µÄ&È¥µô£¬µ«ÊÇÒÀÈ»segmentation fault.¡£
ÍøÉÏÕÒÁËһϣ¬ÔÒòÔÚÓÚµ÷ÊÔµÄʱºòû¼Ó -lpthread!ÏëÒª±àÒë¶àÏ̵߳ijÌÐò£¬±ØÐëÈçϱàÒ룺
gcc -o test -lpthread test.c£¬
ÒòΪÏ߳̿ⲻÊÇÄÚºË×Ô´øµÄ£¬ÒªÏÔʽ˵Ã÷¡£ÎÊÌâÊÇ£¬ÎªÊ²Ã´GCCÔÚ±àÒëµÄʱºò²»±¨´íÄØ£¿
Õâ¸öÎÊÌâ±È½ÏÓÐÄѶȡ£ºÃÁË£¬ÔÒòÕÒµ½ÁË£¬Ôõô½â¾ö£¿Makefile ÎļþÈçÏ£º
#This Makefile is from http://isongzi.com which is to make send.out
CC=$(CROSS_COMPILE)gcc
LINK=$(CROSS_COMPILE)gcc
CROSS_COMPILE=arm-926ejs-linux-
OBJ = main.o \
enc.o \
capture.o \
fb.o \
socket.o \
OBJDIR=./bin
LIBNAME = libvpu.a
LIBDIR = ./lib/
# list of platforms which want this test case
INCLUDE_LIST:=IMX27ADS IMX31ADS MXC30031ADS IMX27MDK27V0
TARGET = send.out
all: $(TARGET) $(TARGET1)
$(TARGET): $(LIBDIR)$(LIBNAME) $(OBJ)
$(LINK) -L . -lpthread -o $(TARGET) $(OBJ) $(LIBNAME)
mkdir -p $(OBJDIR)
mv $(TARGET) $(OBJDIR)
mv $(LIBNAME) $(OBJDIR)
%.o: %.c
$(CC) -Wall -O2 -I $(LIBDIR) -c $^ -o $@
$(LIBDIR)$(LIBNAME):
make -C $(LIBDIR)
mv $(LIBDIR)$(LIBNAME) .
.PHONY: clean
clean:
rm -f $(OBJDIR)/$(TARGET) $(OBJ) $(LIBNAME)
ÔÀ´
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Today is the last day in 2009, I have no idea what should I do but just want to pray that my family, relatives and bosom friends would have a sweet life in the next year. Linux is a 2nd OS in my life, there are always something new can make me feel awesome, so I think that with continuou ......
ºÜ¶àLINUX³õѧÕß·Ö²»Çå³þlinuxºÍXÖ®¼ä,XºÍXfree86Ö®¼ä,XºÍKDE,GNOMEµÈÖ®¼äÊÇʲô¹ØÏµ.³£³£»ìÏý¸ÅÄî,ÎÒÏëÒԱȽÏÒ×ÓÚÀí½âµÄ·½Ê½ËµÃ÷Ò»ÏÂX,X11,XFREE,WM,KDE,GNOMEµÈÖ®¼äµÄ¹ØÏµ.ÓÉÓÚ±¾ÈËˮƽÓÐÏÞ¿ÉÄÜ´æÔÚ´íÎó,Çë¸ßÊÖÖ¸Õý.
Ò»,linux±¾ÉíûÓÐͼÐνçÃæ,linuxÏÖÔÚµÄͼÐνçÃæ ......
½ñÌìÖØÐ±àÒëÒÔǰµÄÒ»¸ö³ÌÐò£¬ÀïÃæÓõ½iconv¿â£ºgcc test.cc -liconv
ÔËÐÐʱ£ºa.out:error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
ÒÔǰ±àÒëÔËÐÐÊÇ¿ÉÒԵģ¬¿ÉÄÜÊDz»¾ÃǰÉý¼¶ÁËiconv¿âÓ°Ïì¡£ÔÚ/usr/local/libÏ¿ÉÒÔÕÒµ½libiconv.so.2£¬°Ñ/usr/local/l ......
»ã±àÓïÑÔµÄÓŵãÊÇËٶȿ죬¿ÉÒÔÖ±½Ó¶ÔÓ²¼þ½øÐвÙ×÷£¬Õâ¶ÔÖîÈçͼÐδ¦ÀíµÈ¹Ø¼üÓ¦ÓÃÊǷdz£ÖØÒªµÄ¡£Linux ÊÇÒ»¸öÓà C ÓïÑÔ¿ª·¢µÄ²Ù×÷ϵͳ£¬ÕâʹµÃºÜ¶à³ÌÐòÔ±¿ªÊ¼Íü¼ÇÔÚ Linux Öл¹¿ÉÒÔÖ±½ÓʹÓûã±àÕâÒ»µ×²ãÓïÑÔÀ´ÓÅ»¯³ÌÐòµÄÐÔÄÜ¡£±¾ÎÄΪÄÇЩÔÚLinux ƽ̨Éϱàд»ã±à´úÂëµÄ³ÌÐòÔ±ÌṩָÄÏ£¬½éÉÜ Linux »ã±àÓïÑÔµÄÓï·¨¸ñʽºÍ¿ª·¢¹¤¾ ......