[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 09:53 / Filesize : 193 KB / Number-of Response : 799
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

マルチスレッドプログラミング相談室 その6



1 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:35:32 ]
マルチスレッドプログラミングについて語るスレ。

その1 pc3.2ch.net/tech/kako/997/997345868.html
その2 pc5.2ch.net/test/read.cgi/tech/1037636153/
その3 pc8.2ch.net/test/read.cgi/tech/1098268137/
その4 pc8.2ch.net/test/read.cgi/tech/1130984585/
その5 pc11.2ch.net/test/read.cgi/tech/1157814833/

OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ

【OS】

【言語】

【実行環境】

【その他突起する事項】

47 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:22:59 ]
マジネタにネタレスしたんだろ


48 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:57:25 ]
こういうの微妙に不思議なんだけど、
シングルプロセッサ環境でも複数スレッドの方が速くなるのな。
なんでだろ?.NET環境特有の現象?

1スレッドと10スレッドでトータルの実行時間は3倍くらいにしかならない。
100スレッドだとせいぜい20倍くらい、つまり5倍くらいスループットが上がる。


49 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 18:05:22 ]
それどんなプログラム?

50 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 18:20:44 ]
上のやつとか。
CPU(とメモリ)依存処理ばかりなのになんでだろう。


51 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 18:43:55 ]
ソースアップしてくれんとわからんね。起動やJITにかかってる時間も含んでる?

52 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 19:00:11 ]
計測は、できるだけ実際の実行部分だけになるように
一応注意してやってはいるんだけどねぇ。

今外なのでソースは出せんが、ゲートとカウントダウンラッチ使って
間の時間を計測してる。計測精度は問題ないものを使ってる。StopWatchね。

ラッチは自作だけど、100万回ループの最初と最後だから
実装がいまいちでもまあそれほど大きな影響はないはず。

スレッドが多いほど処理スレッドに割り当てられるCPU時間が
ある程度は増えるかも知れないが、5倍てのはそういう問題の範囲じゃないと思うんだよね。


53 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 19:06:12 ]
>>39-40
物凄くレアなケースだが、いわゆるABA問題にハマる可能性があるよね。

キューが空のときに、Enqueue()の
> if (next == m_tail || m_buffer[current].Stored) return false;
の行の実行が終わった直後にコンテキストスイッチが入るなどして、次の
> } while (Interlocked.CompareExchange(ref m_head, next, current) != current);
が実行されるまでの間に別スレッドがcapacity + 1回のEnqueue()と1回のDequeue()を行ったとすると、
キューが満杯なのにCompareExchangeが成功してしまう。

同じことはDequeue()側でも起こりうるね。(キューが満杯のとき、Dequeue()内のif文と
CompareExchangeの間で別スレッドがcapacity + 1回のDequeue()と1回のEnqueue()を行った場合とか)

こういう問題への対策法としては、capacityを十分大きくしておくくらいしか
思いつかないけど……

54 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 19:08:40 ]
windowsアプリでやってるので、後でコンソールでも試してみよう。
あとは、スレッド1このときにメインスレッドで直接実行してどうなるか、かな。


55 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 19:12:59 ]
>>53
なるほど、ちゃんと考えてないけど確かになりそうだ。
やっぱ更新バージョンが必要になるのかなぁ…




56 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 19:24:54 ]
いや、更新バージョンじゃだめだな。
インデックスの扱いを工夫、かな。


57 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 20:01:55 ]
つーかみんな論文とか読んで先人はどう工夫した
かぐらい考えてからソースコードかけよなぁ



58 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:11:48 ]
Advanced Windows
ttp://www.amazon.co.jp/Advanced-Windows-改訂第4版-ジェフリー-リッチャー/dp/4756138055

この本、よんだことある人いる?
C,C++でマルチスレッド組むのに有用な本なんだそうなんだが、いかんせん値段が・・・

59 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:19:18 ]
>>53
変数は配列長の整数倍でできるだけ長い周期でループするようにして、
インデックス使用時に配列長で剰余をとるようにしたら、結構遅くなったw

インデックスで必要なビット長を求めて、残りの上位ビットを
サイクル数のカウンタとして使用するようにしたらだいぶ速くなった。
前のよりは1割程度遅くなったが、ここらでいっぱいいっぱいかな。


60 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:22:14 ]
>>59
そんな申し訳ないことして実際どれぐらい役に立つのw
オナニーバイナリ生成ぐらいがいいとこだよね?

61 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:24:52 ]
日本語でOK
お前さんは役に立たないことは一切やらないのかね?


62 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:26:20 ]
まあいろんなものを実装する練習になるから
まったく役に立たないわけでもないんだけどな。


63 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:29:52 ]
>>62
中途半端にかじった奴が糞コード晒すのとどうか思うのだが?
使えるならまだしも危険すぎだろwこんな糞コードしかかけないんだから
止めろよ。ゆとり夏房は本当に困る


64 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:33:46 ]
どしたん?

65 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:37:30 ]
>>63
「これこれの理由で危険だから使わないように」とでもコメントすれば済むことではないかと。



66 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:41:35 ]
糞なとこを指摘してやれば役にも立つのに。

>使えるならまだしも危険すぎだろw
いや誰も実際に使おうなんてやつはいないだろw


67 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:45:42 ]
>>66
こういうものは指摘しても理解できないだろ?
俺はこんなコード書くやつがまともな姿をした
人間だとはとても思えないんだよ。

68 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 23:52:36 ]
>>59
ていうか配列長を2の冪乗に切り上げておけば、
ビットマスクとのAND演算だけで済むでしょ。

69 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 00:01:21 ]
それは思ったが、無駄が多かったのと、キャパとの兼ね合いで
空もしくは一杯の判定が微妙にややこしくなりそうなのでやめた。
でも確かにサイクルカウントを上位ビットに持つよりはずっと単純だったかも試練。


70 名前:68 mailto:sage [2007/08/19(日) 00:10:34 ]
>>69
いや、capacityも配列長に合わせて切り上げちゃっていいんじゃない?
どうせパフォーマンス重視なんだから、capacityなんて厳密に扱う必要はないと思うが。

71 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 00:21:34 ]
うーん、容量固定のキューだったからね、今回はこれは変えたらだめかなって勝手に。
まあ、実際にこんなものを作ることがあったらそうすると思う。


72 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 05:21:55 ]
>>67
>こういうものは指摘しても理解できないだろ?

ここは相談室なんだから、相談相手になる気がないなら他へどうぞ

73 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 09:11:12 ]
>>58
マルチスレッドに限らず、Windowsプログラミング全般においてその本は
とても有用なので、買って損はないよ。

ただし、各種オブジェクト単体での深い説明が中心で、スレッドの作法だとか
そんな話は皆無で、マルチスレッドの入門書として期待しているなら
やめた方がいい。

例えば、クリティカルセクションが他の同期オブジェクトよりも軽いという点について、
OS内部でどう実装されているのかという話が書いてある。

マルチスレッドの話が読みたいなら「Win32マルチスレッドプログラミング」の方が
いいと思う。(俺は見たことないが)

74 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 19:00:00 ]
>>67なにまともなフリをしてんだおまえはw

75 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 19:04:25 ]
でどの辺が糞コードでどの辺が中途半端にかじったぽいのか早く教えて




76 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:15:47 ]
この絡み方厨房の典型だなw

77 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 14:18:42 ]
そうやってすぐ厨房扱いする奴も大して変わらん

78 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 16:45:02 ]
厨房に厨房が返してるだけだろ

79 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:21:13 ]
mutexが永田ロックかけてるのか
まだロックかけないで痛めつけてるのか
計測するほうほうないですか?

pthreadでお願いします。

80 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:42:55 ]
C言語歴15年とかいう人が
ローカルにコピーすれば以下のような
コードがOKだと主張するのですが本当なのw?


struct data{
int len;
char buf[128];
}
struct data[6];
int index;
これをグローバルで定義しておいて

void *thread_1(void *arg){
data[index];
//データ書き込み処理
 index++;
}

void *thread_2(void *arg){
int l_index = index;
//データ読み込み処理
}

絶対 indexをローカル変数に代入して
順番考慮してないから2回処理しそうな
気がするんだけどさー
なんかこんな人のプログラム見るのやだ
逃げたいタスケテ




81 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:48:16 ]
>>80
実はスレッドでなくファイバだったとか。

82 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:50:26 ]
HPの鯖でpthread使って書いてますけど
ファイバってことはありえないですよねw?

まじ釣りとかじゃなくて本気でこんなコード生成
するんですよ。困ってる


83 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:53:21 ]
>>80
オマエの日本語やコードの貼り方も相当なもんだ。困ってる

84 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:53:47 ]
ごめん許してくれ

85 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:55:27 ]
マ板向けの話題かな



86 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:56:49 ]
これって絶対ネタだよな
馬鹿でも考えりゃ排他必要な事解かると

87 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:03:55 ]
満を持してvolatileの登場だな

88 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:06:04 ]
>>87
それもネタだろw


89 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:51:08 ]
>>80悪いがそのコードの意味がわからなくてなんとも胃炎。


90 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:06:45 ]
>>89
文脈から想像して、
int l_index = index;
このようにindexをローカル変数にコピーしてから、そのコピーを使って
配列参照すればロックとかいらない、とC言語歴15年さんが主張している。
と読んだ。

ただ、コードは明らかに抜粋なので、状況によってはOKなのかも知れない可能性はある。

thread_1がデータの更新処理で、thread_2は現在の最新データを取得するだけ、
配列は十分に大きく、データの空チェックは別にあるとか。
あるいは、thread_1とthread_2でキューを実現しようとしているなら問題だけど、その場合も
コードが断片すぎるので、前後の記述によっては問題ないかもしれず。

それを含めて>>80が明らかな問題であることを認識した上で書き込んでいるなら、
最初からマ板に行くべきかと。

91 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:14:21 ]
>>90

SMPなんかでCPU入れ替わったら
問題おきないかなぁ?



92 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:22:06 ]
>>90
キューなどの順序性保証が必要なものだとあきからにやばいけど、
掲示板などに書き込まれたデータの最新の1レコードを定期的に
表示更新っていうパターン(厳密な意味での最新版にはこだわらないもの)
なら、volatileのレベルで妥協できる場合もあるんじゃないかって
思ったんだけど。
thread_2の例が現状のindexをいじらずに現時点のindexのレコード参照
しているだけみたいだから。


93 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:26:28 ]
絶対2回読む可能性捨てきれないし
こんな実装商用レベルでしないよなぁ
きっとどっかの研究室だろうなぁ。
教授が書いたコードだから絶対だみたいな感じなんだろうなぁ

94 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 11:03:22 ]
それならまさに発見的手法だな

95 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:57:45 ]
【OS】 WinXP SP2
【言語】 VC8
【実行環境】 2000以降、可能であれば9x以降
【その他突起する事項】 C++ソースコード上での解決が望ましい

TerminateThreadだと、終了させたいスレッドのハンドルがあればスレッドを終わらせる事ができますが、
これは基本的に最終手段としてスレッドを終わらせる為の物で、初期のスタック割り当てを解除する機会がなかったり、色々問題があるようです。
なので、スレッド外部からExitThreadの様にスレッドを終わらせるにはどうすればいいんでしょうか。
対象のスレッド内で、終了される"かもしれない"タイミングは把握可能です。



96 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:10:34 ]
終了フラグを用意して、スレッドが終わって欲しくなったらフラグを立てる。
対象スレッド内で、今だったら別に終了してやってもいいというタイミングで、フラグをチェックして自主的に終了する。

フラグの読み書きは、ちゃんとクリティカルセクションやミューテックスで囲むか、インターロック関数を使うか、メモリバリアを張ること。

97 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:11:47 ]
・終われフラグなりイベントなりを用意
・要所要所でフラグ/イベントをチェックしてオレオレ例外をthrow
・スレッドの開始点でtry〜catch

でとりあえずできる
他のやり方でも結局こうなると思う

コールスタックにC関数が挟まるとダメな場合もあるので注意

98 名前:.95 mailto:sage [2007/08/28(火) 23:18:11 ]
Sleepしてる間に終わらせるフラグが立つので、待ち時間が長いです...

99 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:25:03 ]
>>95
メッセージなり何なりを対象スレッドに投げて、対象スレッドに自ら涅槃の道に旅立ってもらう。

100 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:44:30 ]
>>98
Sleepを細かく分ければいい。
for (int i=0; i < 10; ++i) {
Sleep(100);
check_exit_flag();
}
こういうポーリングがいやならEventつかって待機関数で待つとか

101 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 08:59:33 ]
【OS】 Xp sp2

【言語】 VBA

【実行環境】 Q6600

VBAってマルチスレッドできないともできるとも明記されていないんです。
質問なんですが、VBAにかかわらずマルチスレッド化によって、『比較的発生しやすい障害』というのは何でしょうか?

C等ならPUSH、POP等のメモリ操作がいちばん気をつかいそうなところですよね。
VBAでは、適所に Do Eventを2つ入れること(実験により1つではエラー起きやすい)、変数のグローバル宣言にきをつけること(2つのスレッドで同じ変数を呼ばない)ことくらいですかね。プロシージャーは同時に使っても今のところ問題ありません。

どうぞよろしくお願いします。


102 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:07:45 ]
>【言語】 VBA
>VBAにかかわらず

どっちだよ

103 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:54:17 ]
>マルチスレッド化によって、『比較的発生しやすい障害』
>101のような香具師が手を出してプロジェクトを台無しにする可能性が高まること。

104 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:55:09 ]
日本語でおk

105 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 11:36:22 ]
> VBAってマルチスレッドできないともできるとも明記されていないんです。

M$に問い合わせろよ



106 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 12:51:30 ]
煽る人ばっかりで、本日はまともな人いないんですねー。><

失礼しました!

107 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:41:29 ]
>C等ならPUSH、POP等のメモリ操作がいちばん気をつかいそうなところですよね。
お前はいったい何を言っている?


108 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:47:28 ]
>>101
お前の居場所はこっちだ
pc11.2ch.net/test/read.cgi/tech/1178723829/

109 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:50:49 ]
Cカップの子を触るのにおもいっきり触るのか
それともソフトタッチでいくのかこれは結構気を使うって
ことなんだな

110 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:58:17 ]
PUSH,POPは気を使わない。それぞれ単純に排他制御するだけだ。
気を使うのは、例えば何かの目的のために一つの処理の中で
pop,pushを続けて行おうとたらその間に別スレッドが実行されて
意図せず状態が変わってしまうようなことが発生すること。
排他制御していない箇所はどんなタイミングでどのスレッドが
実行されるかわからないことを肝に銘じておく必要がある。

『実験により1つではエラー起きやすい』
こんなこと言ってるようじゃ駄目だ。なぜ1つでエラーと
なったのか論理的に分かるまで追え。まあDoEventを愛用
する奴にはマルチスレッドは剥いていない

111 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:15:46 ]
VBAってCOMオブジェクト主体じゃないのか
マルチスレッドの意味あんのかな

112 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:43:06 ]
>101
VBA単独でスレッドを起こす手段がないからな。明記する必要もないだろ。
VBAだけじゃMutexとか同期用のオブジェクトをどうやって扱ったらいいものか、
スレッドを起こす手段がないので同期に関する記述もないからなぁ。
それにCOMだし意味がないかもな。

113 名前:デフォルトの名無しさん [2007/09/08(土) 01:29:00 ]
適当なスレが判断できないのでここで質問させて下さい。
msvcrt.dllやスタティックなVC6以降のmallocとfreeの動作についてですが、
_beginthreadexで作成した各スレッドで、あるスレッドがmallocしたメモリを
違うスレッドでfreeする事は合法でしょうか?
過去の自分の書いたコードで見つけてしまいました。
なんかやばそうな気はするんですが。

114 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:35:12 ]
>>113
何を知りたいの?もうちょっと明確に話まとめろよ
このインキン野郎が

115 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:51:13 ]
>>113
スレッドが異なることは問題ない。

メモリ管理で問題になるのはモジュール(EXEやDLL)が異なる場合。
ただし、この場合でもすべてのモジュールのCランタイムを
動的リンク(msvcrXX.dllを使う)にしておけば、問題は発生しないはず。



116 名前:デフォルトの名無しさん [2007/09/08(土) 21:25:21 ]
ありがとうございました。
一応きちんと動いてはいるみたいなので放置します。

117 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 23:20:00 ]
マルチスレっ

118 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 03:22:50 ]
合法か違法かで言えば合法だろうし、(問題でてないのに)直すってのもアレだけど、
行儀わるいよな。

119 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 03:47:08 ]
>>118
アプリ全体のログを採る処理で、printfみたいな書式文字列を
mallocやreallocでメモリに貯めていって、ある程度溜まった段階で
清書してファイルに吐き出して、使った分をfreeしてくという仕組みなんですが、
CriticalSectionの排他で順番だけ決めてるだけで、どのスレッドが
メモリ管理をする、というのを決めてないんです。
まあ、最初と最後の破棄とかはメインスレッドがするんですが。
試しにスレッド間通信したらパフォーマンスが悪かったので
こんな仕様にしたような記憶があります。
どうしたらいいでしょうかね。

120 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 11:39:09 ]
きちんと管理できてるんなら問題ないでしょ。
C++ならstd::stringとか使ってくれた方が楽そうだけど

121 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 15:29:38 ]
マニアックにboost ropeで

122 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 07:56:13 ]
boost? STLportじゃなくて?

123 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:00:27 ]
XP/2000のスレッドで質問です。
親子関係にあるスレッドで、親をなるべくブロックさせずに、
毎秒数KB程度のデータを子に送信したいと考えています。
(子は1つで、子の応答はいくら遅れてもかまわない)
クリティカルセクションでデータの排他をに試したら、
子供の処理が長引くだけ親がブロックされてしまうので、
別の方法を検討しています。
こういった場合、スレッド同士の同期オブジェクトを介さずに
データをバッファに溜めておける名前付きパイプが良いかなと
思ったのですが、こういった用途に使えるでしょうか。

124 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:16:31 ]
パイプの長さは必ず確保するという話ではなかった気がするなあ

>クリティカルセクションでデータの排他をに試したら、
>子供の処理が長引くだけ親がブロックされてしまうので

通常、

バッファへの追加
バッファからの取り出し

以外は排他する必要はないと思うんだが、違うのか?

125 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:25:19 ]
>>123
子スレッドが処理終わるまでロックさせっぱなしにしないで、
さっさと必要なデータをコピーしてクリティカルセクションから抜けたら?



126 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:38:07 ]
>>123
子供2つにすればいいだろボケシネカス

127 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 00:55:31 ]
10ヶ月かかるし。

128 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 20:48:36 ]
処理が終わるまで待ってたらスレッドの意味が無い。

129 名前:デフォルトの名無しさん [2007/09/19(水) 20:55:43 ]
【OS】
Debian Etch Linux kernel 2.6.18
【言語】
C pthread
【実行環境】
GNU gdb 6.4.90-debian

gdbでのマルチスレッドのデバッグ中、任意のスレッドでステップ実行をしていると
とつぜんカレントスレッドが切り替わり、
ステップ実行していたスレッドの実行位置が失われる現象に遭遇します。
デバッグ対象のプログラムは、動作確認がとれているオープンソースのプログラムです。
原因、回避法等ご存知のかた、ご教示いただけないでしょうか

130 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:12:16 ]
gccスレにも行っとけ

131 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 22:58:11 ]
>>129
250万でサポートしてやるけどどうよ?


132 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:06:29 ]
250万の内訳を教えてくダサイ

133 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:24:38 ]
サンドバック料:200万
治療代:50万


134 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 23:28:49 ]
>>132
年間保守契約費 200万
登録費       30万
事務手数料 20万

だが?


135 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:17:41 ]
ずいぶんと安いね



136 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 04:16:06 ]
これからはsignalfdだな

137 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 14:05:07 ]
ロックしたら負けかな、と思ってる

138 名前:デフォルトの名無しさん [2007/09/24(月) 18:56:19 ]
erlangマンセー

139 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 12:41:04 ]
malloc(), free()ってスレッドセーフなんですか?

140 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 15:01:14 ]
お前が使っているライブラリのマニュアル嫁

141 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 18:07:16 ]
>>140
man malloc
ってやってもスレッドセーフに関する記述がないんです...

142 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 18:41:26 ]
使っているOSの名前、バージョンを言わないのは初心者気取りか?

143 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 20:23:28 ]
対応してる。大丈夫だ。

144 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 22:14:38 ]
>>143
安心しました。ありがとうございます。

145 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 23:24:04 ]
藻前詐欺にあい易いタイプだろ



146 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 23:39:03 ]
ワロタ


147 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:06:02 ]
昔おれ衝動買いの時によくやった
店員に騙されるパターン
信じてたのに・・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<193KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef