[問題] pthread_join segfault? (已解決)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
這是一個用pthread做matrix multiplication的練習
請下載編譯後,用以下的格式測試
./a.out <SIZE> <#THREADS>
i.e.
./a.out 64 4
會拿兩個64x64的矩陣,用4 個threads下去運作
結果會存到output.txt
希望得到的正確結果:
正常執行結束,沒有SEGFAULT
程式跑出來的錯誤結果:
當我用超過九個threads,程式在pthread_join segfault
以下是用gdb除錯的資訊:
[Thread 0xafe01b90 (LWP 21729) exited]
Thread 0 join with main thread with status=9
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb76236b0 (LWP 21711)]
0xb77792de in __deallocate_stack () from /lib/tls/i686/cmov/libpthread.so.0
(gdb) bt
#0 0xb77792de in __deallocate_stack () from /lib/tls/i686/cmov/libpthread.so.0
#1 0xb777a747 in pthread_join () from /lib/tls/i686/cmov/libpthread.so.0
#2 0x08048cc9 in main (argc=Cannot access memory at address 0x1
) at pthread.c:100
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Linux Ubuntu 8.04 gcc4.2.4
有問題的code: (請善用置底文標色功能)
http://pastebin.com/QbdvPDi4
補充說明:
感謝L大的指點,我一開始測試時是用define,所以沒有注意到NUM_THREADS
未定義,改了位置後就可以了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 149.169.43.96
→
09/15 15:13, , 1F
09/15 15:13, 1F
推
09/15 15:17, , 2F
09/15 15:17, 2F
→
09/15 15:17, , 3F
09/15 15:17, 3F
→
09/15 15:22, , 4F
09/15 15:22, 4F
→
09/15 15:23, , 5F
09/15 15:23, 5F
※ 編輯: PCIT 來自: 149.169.43.96 (09/15 15:25)