☆Linux カーネルの仕組みを勉強するスレ☆
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/10/02 17:44ID:38KkZsUQカーネル全般について語り合うスレッドです。
0702743
03/06/26 23:58ID:Ryip/f5bコンパイルしようとすると、make modules のところで、
CC [M] drivers/net/defxx.o
drivers/net/defxx.c:202:2: #error Please convert me to Documentation/DMA-mapping.txt
make[2]: *** [drivers/net/defxx.o] エラー 1
make[1]: *** [drivers/net] エラー 2
make: *** [drivers] エラー 2
といったエラーを出して止まってしまいます。
ググッてみても解決につながる情報が見つからなくて・・・
そもそもこの#error Please convert me というのは
何なのでしょう? どうすればエラーを回避できますか?
0703login:Penguin
03/06/27 07:48ID:47Hwz5yO$ dmesg | head -1
Linux version 2.5.73 (root@=======) (gcc version 3.3 (Debian)) #1 Fri Jun 27 06:46:45 JST 2003
"module-init-tools" の0.9.9以上が入っていないとカーネルをコンパイルしたあとで最後にdepmodするところでこける。
その他 Documentation/Changes の"Minimal Requirement"に記載されている、特定のバージョンのパッケージが必要。
最初 "Preemptible Kernel" を試したが、bashをexitするときなどに
ときどきカーネルがOopsとかナイスなメッセージを出すので、外した。
カーネルモジュールの名前がFreeBSD式の"なんとか.ko"になっている。
bdflushがどうので/sbin/updateがobsoleteだからinitscriptを直せ、とか警告される。
サウンドモジュールがなにやら"unsafe"とかで。
lsmod すると
> cs4281 49152 1 [unsafe]
のような間抜けなステータスが出る。rmmodできない。
i810のdrm/agpgartカーネルモジュールがまずいらしく、Xのdriを有効にできない。
> (II) I810(0): [agp] GART: no dcache memory found
> (II) I810(0): [dri] Unable to allocate backbuffer memory. Disabling DRI.
~~
> (WW) I810(0): xf86AllocateGARTMemory: allocation of 1024 pages failed
> (Cannot allocate memory)
---
とりあえずvtを切替えても落ちることはない(以前はよく落ちた)。
dri.sourceforge.netにあるカーネルdriモジュールは kernel2.5では使えないようだ。
これ以外は、今のところちゃんと動いているが、ちょっとだけ不安。
0704702
03/06/27 21:05ID:z7RNnbMR0705login:Penguin
03/06/28 00:51ID:V5nJnO59親切に
Please convert me to Documentation/DMA-mapping.txt
と言ってくれているので、まずはドキュメントを読んで見ればいいのでは?
0706login:Penguin
03/06/28 13:49ID:Vom+2tH9もちろん。そして、そのもとの文も、そうはいってないと思う。
それは、プロセスaのdiskI/Oまちの間プロセスbが止まると読むのではなく、
(おそらくだれか(a)の要求に関連する)disk I/Oの処理がプロセスbのスケジュー
リングを遅延させることを言ってるのだとおもう。プリエンプティブカーネル
(と、プライオリティつきスケジューラ)はそれを改善するものだから。
0707login:Penguin
03/06/29 13:50ID:S956rOO5>それは、プロセスaのdiskI/Oまちの間プロセスbが止まると読むのではなく、
>(おそらくだれか(a)の要求に関連する)disk I/Oの処理がプロセスbのスケジュー
>リングを遅延させることを言ってるのだとおもう。
うーむ。
何度読んでも、そうは読めないなぁ。それと、そもそも
>エンプティブカーネル (と、プライオリティつきスケジューラ)はそれを改善するものだから。
という理解も間違ってませんか?
2.4だって、I/O処理自体が、スケジューリングを遅延させているわけではないですよね?
自主的 sleep が入らないような類いのシステムコールが、再スケジューリングの遅れ
を発生させるのではありませんか?
http://www.atmarkit.co.jp/flinux/special/kernel26/kernel26_04a.html
上のURLでは、I/O処理完了にともなうハードウェア割り込み用ルーチンが起動した
場合にも、再スケジュールするようになりました、といっている感じですよね。
0708login:Penguin
03/06/29 23:08ID:/oTz8bWl漏れの理解でもそうだと思う
2.4では、自分でsleepするか、システムコールの終わりの
ユーザランドに戻る直前でしか、コンテクストスイッチは起きない。
カーネル内でいくら割り込みが起きても、割り込まれたプロセス
の実行に戻る。
プリエンプティブカーネルならば、割り込みがおきたところが
クリティカルセクションでない時には、割り込みハンドラの実行が
終わった所で再スケジューリングされる。
0709login:Penguin
03/06/29 23:53ID:mQ4EYUec割り込みから抜けるときも、ユーザーモード実行中でneed_resched立っていれば
schedule呼びます。
でないとcpu握ったままのプロセスがつくれてしまう。
0710login:Penguin
03/07/02 01:58ID:VujfXoME0711login:Penguin
03/07/02 02:11ID:kUFisWUNエイヤと、5秒待ち合わせ!みたいな良い加減さは
Linux らしくて涙チョチョ切れるね。
2 - 4 SMP くらいだと、問題にならないのだろうけど。
0712login:Penguin
03/07/06 21:37ID:VzJQlVRaint did_exec:1;
というメンバがあるんですが,これはどういう意味でしょうか?
0713直リン
03/07/06 21:42ID:wYFJkOTE0714login:Penguin
03/07/06 21:54ID:/k97neyg0715login:Penguin
03/07/06 22:50ID:wK3uN9NXbit fieldだね。
"int did_exec:1"と書くと
did_exec変数の下位1bitのみだけが有効になり、
0か1しか設定されないのさ。
0716login:Penguin
03/07/07 00:12ID:WcWZ6n6e0か-1ではないのか?
0717login:Penguin
03/07/07 00:18ID:XJtR7Wyv普通は1に解釈しない?
どーせ1bitしかないからnot 0であればいいんだが。
0718712
03/07/07 00:51ID:CYZ75cVfアホな質問してすいません.
今度からはもう少し調べてから質問します.
0719login:Penguin
03/07/07 22:00ID:kPsRFwM6うん。0,1でいきたいので struct { int a:1; } s = {1};とか初期化しちゃう
けど、結局のところ解釈はコンパイラがやるので、例えば s.a >0 ? は偽です。
てか s.a==-1? が真になる。上位1bitが符号だから、それで正しいんだと思う。
0,1にしたければ unsigned int ですね。初期化とも矛盾しちゃって気持悪いし。
0721login:Penguin
03/07/08 00:16ID:wvWko+bEっていうか、task_struct構造体の
did_exec変数は、名前の通りフラグに使うわけだから
0か0以外の値で判定するだけいいわけです。
実際にsys.cファイルには
>if (p->did_exec)
> goto out;
ってなってるし。
ちなみにsys.cファイルのコメントには以下のメッセージが。(w
* Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
0722login:Penguin
03/07/08 01:23ID:a4iER9hA0723login:Penguin
03/07/12 12:47ID:Q71PnbZR0724login:Penguin
03/07/13 22:08ID:UrPfG9sVおいての応答性が上がったけど、コストパフォーマンスが落ちた
ような気がする。
やはり、応答性とコストパフォーマンスはトレードオフなのかな。
以下は自作プログラムによるテスト結果
【1分間のファイル読み書き回数】
|2.4.22-pre5|2.4.21
―――|――――――|―――――
1回 |2588771 |2808551
2回 |2573318 |2865419
3回 |2569311 |2878404
4回 |2576775 |2870706
5回 |2578199 |2868286
6回 |2571464 |2865638
7回 |2588162 |2868531
8回 |2595950 |2863878
9回 |2606366 |2878016
10回|2604069 |2869487
平均 |2585238.5 |2863691.6
2.4.22-pre5の方が1分間のファイル読み書き回数が減少している。
0725login:Penguin
03/07/13 22:14ID:TbuOUgH9アレ(Xとかの応答性向上パッチ)がはいったんだっけ? もしあれなら、あれは
いままで相対的にI/OにCPUが渡りすぎてたのを、そっちを減らしてかわりにX
に割り当てる量を増やす"改善"をするパッチだから、当然I/O性能はおちます。
0726login:Penguin
03/07/13 22:28ID:UrPfG9sV>コストパフォーマンスの評価式は? それともパフォーマンスのことなのかな。
自分が言いたかったのは、多重プロセスがI/O処理中におけるCPU応答性のことです。
>アレ(Xとかの応答性向上パッチ)がはいったんだっけ? もしあれなら、あれは
>いままで相対的にI/OにCPUが渡りすぎてたのを、そっちを減らしてかわりにX
>に割り当てる量を増やす"改善"をするパッチだから、当然I/O性能はおちます。
それは、agp関連の事ですか?
ちなみ、GUI環境ではなくCUI環境でテストしました。
0727login:Penguin
03/07/13 23:14ID:ujCbFKxOChangeLogを見る限りは入ってないなぁ。
io schedulerの修正入ってるから、そっちの影響かも。
関係あると思えないBUG fixなんだけど。
0728724
03/07/13 23:29ID:UrPfG9sV>>726で言ってる、
>>コストパフォーマンスの評価式は? それともパフォーマンスのことなのかな。
>自分が言いたかったのは、多重プロセスがI/O処理中におけるCPU応答性のことです。
ではなくて、プロセスがdisk I/O処理が終了するまでの合計処理時間です。
0729login:Penguin
03/07/14 02:53ID:YDflspfA0730login:Penguin
03/07/15 03:41ID:kOKraebZヤバくない?
0731login:Penguin
03/07/15 03:57ID:v95prNREカーネルがサポートしたなら、それは今やデバドラのバグです。
でもSMP対応しているものなら大丈夫な"ハズ"ですよ。そーゆートリックですから。
0732山崎 渉
03/07/15 11:16ID:doz396Fq__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0733login:Penguin
03/07/15 11:57ID:Fo16Kpwc0734login:Penguin
03/07/16 01:23ID:g/ls7vVV>カーネルが非SMPでもプリエンティブになったんだっけ?
>ヤバくない?
SMP、非SMPのどちらであろうがカーネルはプリエンティブになっている。
何でやばくなるの?
>>731
>もちろんやばい作りのものデバドラとかはヤバいですよ。
>カーネルがサポートしたなら、それは今やデバドラのバグです。
もし、それでヤバくなるデバドラならそのデバドラの設計ミスでしょ。
>でもSMP対応しているものなら大丈夫な"ハズ"ですよ。そーゆートリックですから。
もしかしてテキトーに言ってますか?
0735login:Penguin
03/07/17 03:08ID:X2zI67Ch> もし、それでヤバくなるデバドラならそのデバドラの設計ミスでしょ。
もち。そういう意図の発言です。
> もしかしてテキトーに言ってますか?
spinlockがプリエンプションのポイントになっていることを指して言っています。
0736login:Penguin
03/07/18 01:34ID:Ad3cqyqT守るためのロックプリミティブがちゃんと書いてあれば
いいということだろ。
SMPならばtest and setとかの本当のlockをすればいいし、
プリエンプティブのときにはプリエンプション可能かを見る。
従って、CONFIG_SMPとCONFIG_PREEMPT(?)は独立に
できるはず。
と、テキトーに思ってみるわけだが。
0737login:Penguin
03/07/18 21:26ID:7TXfJdj/SMPとPreemption-kernelは初めから独立して設定できる。
Preemption-kernelのコードはSMPとそれ以外で場合分けされてる。
Preemption-kernelのコードは2.4向けのパッチを見ると良いかも。
0738login:Penguin
03/07/22 11:26ID:6WQ9WMDa0739login:Penguin
03/07/25 12:51ID:NH3LXVfX0740login:Penguin
03/07/28 12:56ID:YIr5Dzm40741ぼるじょあ ◆yBEncckFOU
03/08/02 05:08ID:GfRe8vK7ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0742login:Penguin
03/08/02 10:31ID:0p3phC6s0743login:Penguin
03/08/10 11:15ID:t5VAEY5s0744login:Penguin
03/08/11 11:53ID:5aoknCTf0745login:Penguin
03/08/15 17:22ID:aL8WrViO0746abc
03/08/15 18:53ID:D/wj3em9http://www.sexpixbox.com/pleasant/dx/index.html
0747山崎 渉
03/08/15 22:11ID:ep0zwfOh│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0748山崎 渉
03/08/15 22:35ID:ep0zwfOh│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0749login:Penguin
03/08/16 00:02ID:+8Yy95I50750login:Penguin
03/08/16 00:25ID:CSEwRIa6linux-2.6.0-test3+αで
find -name '*.[ch]'|xargs cat|wc -l
の結果。
5,254,674行
全部把握できたらまちがいなく神。
ちなみに、
find drivers -name '*.[ch]'|xargs cat|wc -l
が、2,516,767行なので、半分ぐらいはドライバだな。
0751login:Penguin
03/08/16 14:38ID:oSWJJuxFInitializing USB Keyboard: modprobe: Can't locate module keybdev
というNGが出ていたので、
make xconfig で
Input core support を m
Mouse support を m
USB support の USB HIDBP Mouse (basic) support を m
としたところ、エラーは消えました。
ですが、マウスを動かしても反応してくれませんでした。
m ではまずいのかと思い、上記のところを y にしてみると今度はNGが
出てしまいました。
もう一つ質問です。
IPv6対応にしたいのですが、Networking options の
The IPv6 protocol(EXPERIMENTAL) を m とし
それによって増えた項目全部を y としたところ
make module_install 実行時
depmod: *** Unresolved symbols in /lib/modules/2.4.21/kernel/net/ipv6/ipv6.o
depmod: find_transform_by_name_R027c72c5
と言われました。
これはどのように対処すればいいのでしょうか?
ifconfigをやってもIPv6のIPがまったく出てこなくて・・・・・・・
長い文章で申し訳ございませんが、ご指導よろしくお願いいたします。
0752login:Penguin
03/08/25 09:44ID:ZYMvu5IH0753login:Penguin
03/08/28 07:10ID:ssaojeEBNFS経由の多段リンクとかしてたらスタックオーバーフロー
とか言ってハングするのだが・・・スタック領域って拡張できるの?
0754login:Penguin
03/08/28 10:48ID:GLbP7FQBカーネルスタック?
カーネル作りなおせば増やせるけど、どこに影響が出るかわからんぞ。
0755login:Penguin
03/08/29 13:31ID:UPtCxfjb多段リンクの意味がよくわからない。
symlink -> symlink -> realfile ってこと?
0756login:Penguin
03/09/01 11:50ID:MpWyDbPw0757eiji
03/09/02 13:56ID:DWK7xXkcお願いします。
0758login:Penguin
03/09/02 14:53ID:BTzOKWIcそんな漠然とした質問に答えられる香具師は居ないと思われ。
カーネルといったって規模が大きいからな。
カーネルとは何ぞや、ということを先ず本か何か読んで調べるのが吉。
0759login:Penguin
03/09/02 15:08ID:pHfbPm/9宿題は自分でやれ。
0760login:Penguin
03/09/03 16:28ID:iWz7WMbL0761login:Penguin
03/09/04 22:39ID:fsrmdR87>>755
ありがとー。実は客にきかれててさー。
カーネルスタックかぁー。触らない方がよさだよなぁ。
でも説明せんといけないし。なんか参考になるサイトないすか?
あ、あと多段リンクはこれであってる。
説明がなかったな。スマソ
一応、制限が5段までで怪しいパッチをあてると8段まで
いけるらしいんだけど、スタックオーバーフローになる。
0762login:Penguin
03/09/05 02:29ID:sR5Y928Wスタックオーバーフローって、カーネルじゃなくて、
アプリケーションがタコなだけな気も。
カーネル的には、symlink は 20段程度やそこらは大丈夫だったと思ったけど。
(つーか、symlink の循環を検出するために、一応、限度を設定してるだけで、
カーネルでのスタック消費がどんどん増えていく、とかはないはず)
いずれにしても、カーネルで他段symlink限界を超えたときは、ELOOP でしょ。
単に、アプリケーションが自前で lstat() や readlink() を使った挙げ句、
爆死してるとかじゃない?
死んでるのは、なんてソフト/コマンドなの?
0763login:Penguin
03/09/05 06:48ID:NvZ0a9K70764login:Penguin
03/09/06 02:38ID:6wacLc6HIPv6対応にしたいのですが、Networking options の
The IPv6 protocol(EXPERIMENTAL) を m とし
それによって増えた項目全部を y としたところ
usagi/doc/CONFIG.linux24
あたりを読め。意味がわからんやつをyにするな。
0765login:Penguin
03/09/08 22:57ID:hx2KIDDjありがとう!そんな答えが欲しかった。
実は客が何やってるのか今一つかめてないから
判ったらまた書くよ。またよろしく。
0766login:Penguin
03/09/15 10:49ID:I+VNLCRD0767login:Penguin
03/10/11 22:31ID:seR0x92U0768login:Penguin
03/10/18 22:04ID:cV4cEMzMアックスってやばいの? 死期神を作っている会社だよね?
0769login:Penguin
03/10/18 23:05ID:iEnCwFBH広報は…昔からなのであきらめて下さい。
0770login:Penguin
03/10/19 04:24ID:vsa+A4dYセミナーがあまりにアホ過ぎて
笑いを通り越した
0771login:Penguin
03/10/19 15:14ID:P4K7wAI70772login:Penguin
03/10/24 01:06ID:8mSLFw8A0773login:Penguin
03/10/24 01:44ID:IA1XAa8m0774login:Penguin
03/11/01 18:25ID:BY3sdtX9それとメモリ領域の確保にはget_free_page、kmalloc、vmallocのどれがベターなんすかね?
調べた限りでは
get_free_page ページフレーム単位での割り当て(4kB)
kmalloc 連続したメモリ領域の確保
vmalloc 非連続メモリ領域の確保
たぶん割り当てるデータの種類・頻度によって使う方法が違うと思うんですが、
いまいちこういうデータにはこれがいい、という判断ができないもので。
0775login:Penguin
03/11/01 18:44ID:UJpXfS4u0776login:Penguin
03/11/01 19:13ID:VqBAcchD0777login:Penguin
03/11/01 21:56ID:GycfD/6pだから、こういうときはkmallocとかいうような場合分けの判断の仕方を教えて欲しいわけです。
初期化の方は?
0778login:Penguin
03/11/01 23:26ID:yJPpr0Et0779login:Penguin
03/11/01 23:57ID:X+/ZvCjkget_free_pagesとvmallocは意味がわからないのなら使う用途はなさそう。
0780login:Penguin
03/11/02 02:01ID:c8ANRrTLchar *とかはどうです?なまじページフレーム以下のバイト数割り当ててページフレーム内でのメモリ断片化を起こすより、ページフレーム単位で割り当てた方がいいんですかね?
でも4kBはでかいものなあ・・・
0781login:Penguin
03/11/02 04:02ID:mdTuavMg結局malloc系はみんな4kbずつ取られちゃうし
そもそもPCならメモリはたくさんだから
1000枚とったって4メガじゃん とか思って
もうめんどくさいしと考えて kmalloc
0782login:Penguin
03/11/02 13:27ID:3SVrF8XB初期化はその通り
一時的に使うか大体1ページ埋まっちゃう時はget_free_pages
それ以外はkmalloc
かな。
細かいことを気にしたくないなら、kmallocでいいんじゃない?
0783login:Penguin
03/11/02 14:11ID:aAzlTdEEそうっすね。kmallocを使うようにします。
ありがとうございました。
0784login:Penguin
03/11/12 19:11ID:j+kuNkZGsizeof(struct rs_table[])
でエラーがでます。
rs_table[]の定義が見つからないようです。
kernelのrs_table[]を参照しているのですが、
これはどこに書いてあるでしょうか?
また、これはどのような意味でしょうか?
わかる方がいましたら教えていただきたいです。
シリアルttyS??やリソースに関係しているっぽいらしいことはなんとなくわかったのですが。。。
0785784
03/11/12 19:14ID:j+kuNkZG0786login:Penguin
03/11/12 19:56ID:QJ3+g/Cf0787login:Penguin
03/11/13 04:48ID:9Axt2Fw50788login:Penguin
03/11/13 04:53ID:9Axt2Fw5sizeof(struct serial_state)*RS_TABLE_SIZE
あたりで手をうったらだめ?
0789login:Penguin
03/11/16 03:56ID:rakWerCm0790login:Penguin
03/11/16 13:56ID:mtRdwIbicurrent->ttyがNULLか見ればいけるかな?
0791login:Penguin
03/11/20 21:17ID:F3gDXEitそれとカーネルスレッドはcurrent->*でpidなどを取得したりはできないのでしょうか?
0792login:Penguin
03/11/20 21:55ID:5PKfc9lP割り込みかどうかの判断であるin_interrput()関数と
合わせて御利用ください。
pidの取得も問題ないはずですが、current->tgidとcurrent->pidが
紛らわしいので注意してください。
0793login:Penguin
03/11/20 23:46ID:F3gDXEitswapperのmm==NULLでcloneのflags | CLONE_VMだからですね.ありがとうございます.
それとin_interruptは自分が注目しているコードの部分は例外や割り込みハンドラの部分ではないのですが,
それでも必要でしょうか?
tgidとpidが紛らわしいというのはどういう意味でしょうか?
>>790
789僕です.遅れましたが,ありがとうございました.
0794790,792
03/11/21 00:46ID:uTRJrHVoそれなら、in_interrput()は使わなくてよいです。
2.6のgetpid()で取れるはtgidなのでtgidを使えば無難です。
今までのlinuxthreadsを使うとpid==tgidなんですが、
NPTLでは、何故かねじれてしまってpidがスレッドIDに
なっています。
0795login:Penguin
03/11/22 05:27ID:Ra8noU1xユーザ空間におけるスタックフレームをカーネル空間からバックトレースして,
それぞれのフレームにおけるリターンアドレスを調べていくことは可能ですか?
またcurrent->mm->start_stack以外にスタックに関する情報はないのでしょうか?
0796login:Penguin
03/11/22 11:56ID:vL0kggqG流れを理解するにはうってつけだけど、長々と文章で説明するより
図とかソースの方が分かりやすかったりする。好みだけど。
たしか、この本が出たときにいろいろ批判をしたスレがあったと
思うけどどこですか?
0797login:Penguin
03/11/22 17:33ID:wN3p4lwgそれなら、ユーザー側のspを読んで追っかけたほうが簡単じゃないかと。
CPUに依存するけど。
0798login:Penguin
03/11/23 04:45ID:eeQbYtxkユーザ側のspの値はcpuの制御回路によってカーネルスタックに退避されるんですよね?
みようとしている部分がシステムコールハンドラのret_from_sys_callのところからなんですが,arch/i386/kernel/entry.S(自分のマシンのアーキテクチャはx86です)によるとそのときのカーネルスタックのレイアウトは,
0(%esp) - %ebx
4(%esp) - %ecx
8(%esp) - %edx
C(%esp) - %esi
10(%esp) - %edi
14(%esp) - %ebp
18(%esp) - %eax
1C(%esp) - %ds
20(%esp) - %es
24(%esp) - orig_eax
28(%esp) - %eip
2C(%esp) - %cs
30(%esp) - %eflags
34(%esp) - %oldesp
38(%esp) - %oldss
となっていて,このoldespがユーザ側のspの値でしょうか?
ところで,スタックに格納されているデータがリターンアドレスかどうかを判別するにはどうすればいいのでしょうか?
スタックフレームごとの区別の仕方もよく分かりません.gccのソースコードとかを読んでみれば分かりますか?
0799login:Penguin
03/11/23 04:48ID:eeQbYtxk0800795
03/11/23 20:21ID:DFb2kUztというかlinuxカーネルの話題とずれた質問してすいませんでした.
0801login:Penguin
03/11/23 22:36ID:SyBc4qQvどこに入るかもCPUによって違うので、必ずカーネルスタックに入っている保証はない。
ただ、コンテキストスイッチした時の値はthreadに入っているはず。
x86でret_from_syscallでみるならoldespでOK。
csも確認してring3に戻ることを確認したほうが良いかもしれない。
判別法は、アドレスが.textの領域に収まっているかどうか確認するのが一番簡単だと思う。
まじめに解析するならデバッグ情報をなめるしかないだろうね。
>>800
ebpは-fomit-frame-pointerされると使えないので注意。
■ このスレッドは過去ログ倉庫に格納されています