SGI KDBを使ったカーネルデバッグスレ
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
NGNGカーネルデバッグの話はここで存分にどうぞ
2名無しさん@お腹いっぱい。
NGNGage
31
NGNG1.http://oss.sgi.com/projects/kdb/ より、使用しているカーネルにあった
パッチをダウンロードし、カーネルソースにパッチを当てる。
2.make xconfigなりのカーネルコンフィグアプリを起動。
Kernel Hackingの項目が追加されているので、
"Build-in Kernel Debugger support"をyにする。ついでに
"compile the kernel with frame pointers"もyにしたほうがスタック
トレースがとりやすくなる。
3.カーネル再構築。
4.lilo.confに以下のように"kdb=on"のカーネルブートオプションをつける。
>image=/boot/vmlinuz-2.4.4-test
> label=test
> read-only
> root=/dev/hda2
> append="kdb=on"
5.liloを実行し、ブート情報を書き込み、ブートオプションをつけたカーネルから
ブート。
6.Pauseキーを押すとカーネルデバッガに入る。"g"コマンドで再開。
パッチをダウンロードし、カーネルソースにパッチを当てる。
2.make xconfigなりのカーネルコンフィグアプリを起動。
Kernel Hackingの項目が追加されているので、
"Build-in Kernel Debugger support"をyにする。ついでに
"compile the kernel with frame pointers"もyにしたほうがスタック
トレースがとりやすくなる。
3.カーネル再構築。
4.lilo.confに以下のように"kdb=on"のカーネルブートオプションをつける。
>image=/boot/vmlinuz-2.4.4-test
> label=test
> read-only
> root=/dev/hda2
> append="kdb=on"
5.liloを実行し、ブート情報を書き込み、ブートオプションをつけたカーネルから
ブート。
6.Pauseキーを押すとカーネルデバッガに入る。"g"コマンドで再開。
4別のスレの1
NGNGリモートの場合。
1.同じくクロスシリアルケーブルを用意しターゲットとターミナルを繋ぐ。
2.ターミナルマシン上で適当なターミナルプログラムを起動する。
3.liloのappendコマンドを以下のように変更。
append="kdb=on console=ttyS0,38400"
これで、シリアルコンソールにデバッガの出力が表示される。
停止はターゲットでPauseキーか、ターミナルでCTRL-A。
4.ただこれだと、ブートメッセージがターミナルにしか表示されなく
なるので、以下のようにしたほうがいいかも。
append="kdb=on console=ttyS0,38400 console=tty0"
これで、ブートメッセージは両方に出力される。そのかわりCTRL-Aでの
Breakinはできなくなる。
Initは最後に指定されたコンソールに出力するらしく、
append="kdb=on console=tty0 console=ttyS0,38400"
のようにしてしまうとInitの出力がターミナルだけになってしまうため
不便。
1.同じくクロスシリアルケーブルを用意しターゲットとターミナルを繋ぐ。
2.ターミナルマシン上で適当なターミナルプログラムを起動する。
3.liloのappendコマンドを以下のように変更。
append="kdb=on console=ttyS0,38400"
これで、シリアルコンソールにデバッガの出力が表示される。
停止はターゲットでPauseキーか、ターミナルでCTRL-A。
4.ただこれだと、ブートメッセージがターミナルにしか表示されなく
なるので、以下のようにしたほうがいいかも。
append="kdb=on console=ttyS0,38400 console=tty0"
これで、ブートメッセージは両方に出力される。そのかわりCTRL-Aでの
Breakinはできなくなる。
Initは最後に指定されたコンソールに出力するらしく、
append="kdb=on console=tty0 console=ttyS0,38400"
のようにしてしまうとInitの出力がターミナルだけになってしまうため
不便。
5別のスレの1
NGNGとりあえず、Linuxカーネルのなかで実際に止めてみて、どんな感じになるか見てみよう。
えっと、とりあえずSGI KDBは動いてるとします。で、なんかユーザーが特定の
操作をやったらとまる場所を探そう。俺が今回使うのはipv4のicmpのコード。
ユーザーがping叩けばそこ必ずとおるからね。普段はあまり通らないから変に
たくさん止まることもないと。
ソースをみていい止める関数を探してもいいが、今回俺はsystem.mapを使った。
system.mapをエディタで開いてみるとこんな感じでicmpがらみの関数がある。
c0206a60 t icmp_reply
c0206be0 T icmp_send
c0206f60 t icmp_unreach
c0207220 t icmp_redirect
c02072d0 t icmp_echo
c0207320 t icmp_timestamp
c0207410 t icmp_address
c0207420 t icmp_address_reply
c0207570 t icmp_discard
c0207580 T icmp_rcv
icmp_unreachなんかがいいかね。多分icmpが届かなかった場合にくるファンクション
だろう。はい、ターゲットマシンでPauseキーを押してbreakinしましょう。
[1]kdb> とかいうプロンプトがでるな。最初の数字はプロセッサナンバーだ。
シングルプロセッサで動かしてるなら常に0になる。
で、icmp_unreachにbreakpoint張るわけだが、system.mapを見て
[1]kdb> bp c0206f60 とじかにアドレス指定してもいいんだが、もっと簡単に
[1]kdb> bp icmp_unreach とシンボルを指定してもできる。
うまくbreakpoint張れたら
Instruction(i) BP #0 at 0xc0206f60 (icmp_unreach)
is enabled globally adjust 1
とか出るはず。あと、とりあえず、breakpoint張る前に実際のそのアドレスが
ファンクションの先頭であるか確認したほうがいいな。
ディスアセンブルはidコマンドだ。
[1]kdb> id icmp_unreach
0xc0206f60 icmp_unreachpush %ebp
0xc0206f61 icmp_unreach+0x1mov %esp,%ebp
0xc0206f63 icmp_unreach+0x3mov $0x14,%eax
0xc0206f68 icmp_unreach+0x8push %edi
0xc0206f69 icmp_unreach+0x9push %esi
0xc0206f6a icmp_unreach+0xapush %ebx
こんな風に先頭2インストラクションが push %ebpとpush %esp,%ebp ならそれは
まず間違いなく関数の先頭だ。これはC言語のStackFramを作るコードだ。
えっと、とりあえずSGI KDBは動いてるとします。で、なんかユーザーが特定の
操作をやったらとまる場所を探そう。俺が今回使うのはipv4のicmpのコード。
ユーザーがping叩けばそこ必ずとおるからね。普段はあまり通らないから変に
たくさん止まることもないと。
ソースをみていい止める関数を探してもいいが、今回俺はsystem.mapを使った。
system.mapをエディタで開いてみるとこんな感じでicmpがらみの関数がある。
c0206a60 t icmp_reply
c0206be0 T icmp_send
c0206f60 t icmp_unreach
c0207220 t icmp_redirect
c02072d0 t icmp_echo
c0207320 t icmp_timestamp
c0207410 t icmp_address
c0207420 t icmp_address_reply
c0207570 t icmp_discard
c0207580 T icmp_rcv
icmp_unreachなんかがいいかね。多分icmpが届かなかった場合にくるファンクション
だろう。はい、ターゲットマシンでPauseキーを押してbreakinしましょう。
[1]kdb> とかいうプロンプトがでるな。最初の数字はプロセッサナンバーだ。
シングルプロセッサで動かしてるなら常に0になる。
で、icmp_unreachにbreakpoint張るわけだが、system.mapを見て
[1]kdb> bp c0206f60 とじかにアドレス指定してもいいんだが、もっと簡単に
[1]kdb> bp icmp_unreach とシンボルを指定してもできる。
うまくbreakpoint張れたら
Instruction(i) BP #0 at 0xc0206f60 (icmp_unreach)
is enabled globally adjust 1
とか出るはず。あと、とりあえず、breakpoint張る前に実際のそのアドレスが
ファンクションの先頭であるか確認したほうがいいな。
ディスアセンブルはidコマンドだ。
[1]kdb> id icmp_unreach
0xc0206f60 icmp_unreachpush %ebp
0xc0206f61 icmp_unreach+0x1mov %esp,%ebp
0xc0206f63 icmp_unreach+0x3mov $0x14,%eax
0xc0206f68 icmp_unreach+0x8push %edi
0xc0206f69 icmp_unreach+0x9push %esi
0xc0206f6a icmp_unreach+0xapush %ebx
こんな風に先頭2インストラクションが push %ebpとpush %esp,%ebp ならそれは
まず間違いなく関数の先頭だ。これはC言語のStackFramを作るコードだ。
6別のスレの1
NGNGbreakpointが張れたらgコマンドで再開。icmp_unreach関数を呼ぶために
適当な存在しないipアドレスへpingを送ってみよう。
breakpointにHitしたら
Instruction(i) breakpoint #0 at 0xc0206f60 (adjusted)
0xc0206f60 icmp_unreachint3
Entering kdb (current=0xc1228000, pid 0) on processor 1 due to Breakpoint @ 0xc0206f60
のようなメッセージが出てコマンド待ちになる。
なにはともかく。止まったらスタックバックトレースを取ろう。コマンドはbtだ。
[1]kdb> bt
EBP EIP Function(args)
0xc1229e5c 0xc0206f60 icmp_unreach (0xc01051b0, 0xffffe000, 0xc1228000, 0xc1228000, 0xc1228000)
kernel .text 0xc0100000 0xc0206f60 0xc0207220
0xc0106fac ret_from_intr
kernel .text 0xc0100000 0xc0106fac 0xc0106fcc
Interrupt registers:
eax = 0x00000000 ebx = 0xc01051b0 ecx = 0xffffe000 edx = 0xc1228000
esi = 0xc1228000 edi = 0xc1228000 esp = 0xc1229fac eip = 0xc01051df
ebp = 0xc1229fac xss = 0x00000018 xcs = 0x00000010 eflags = 0x00000246
xds = 0xc1220018 xes = 0xc1220018 origeax = 0xffffff00 ®s = 0xc1229f78
0xc01051df default_idle+0x2f
kernel .text 0xc0100000 0xc01051b0 0xc01051f0
0xc1229fc0 0xc0105272 cpu_idle+0x52
kernel .text 0xc0100000 0xc0105220 0xc0105290
うーん、なんかうまく取れてないね。StackFrameがちゃんと作られてないと
完全には取れないんだね。でも関数の頭を見る限り全部StackFrameは
作られてるんだけどね。謎だ。KDBのソースを見て調べてみるしかないね。
適当な存在しないipアドレスへpingを送ってみよう。
breakpointにHitしたら
Instruction(i) breakpoint #0 at 0xc0206f60 (adjusted)
0xc0206f60 icmp_unreachint3
Entering kdb (current=0xc1228000, pid 0) on processor 1 due to Breakpoint @ 0xc0206f60
のようなメッセージが出てコマンド待ちになる。
なにはともかく。止まったらスタックバックトレースを取ろう。コマンドはbtだ。
[1]kdb> bt
EBP EIP Function(args)
0xc1229e5c 0xc0206f60 icmp_unreach (0xc01051b0, 0xffffe000, 0xc1228000, 0xc1228000, 0xc1228000)
kernel .text 0xc0100000 0xc0206f60 0xc0207220
0xc0106fac ret_from_intr
kernel .text 0xc0100000 0xc0106fac 0xc0106fcc
Interrupt registers:
eax = 0x00000000 ebx = 0xc01051b0 ecx = 0xffffe000 edx = 0xc1228000
esi = 0xc1228000 edi = 0xc1228000 esp = 0xc1229fac eip = 0xc01051df
ebp = 0xc1229fac xss = 0x00000018 xcs = 0x00000010 eflags = 0x00000246
xds = 0xc1220018 xes = 0xc1220018 origeax = 0xffffff00 ®s = 0xc1229f78
0xc01051df default_idle+0x2f
kernel .text 0xc0100000 0xc01051b0 0xc01051f0
0xc1229fc0 0xc0105272 cpu_idle+0x52
kernel .text 0xc0100000 0xc0105220 0xc0105290
うーん、なんかうまく取れてないね。StackFrameがちゃんと作られてないと
完全には取れないんだね。でも関数の頭を見る限り全部StackFrameは
作られてるんだけどね。謎だ。KDBのソースを見て調べてみるしかないね。
7別のスレの1
NGNGうまくスタックトレースが取れないから、ssコマンドを使ってトレースを
しながら、breakpointをうまく張って上位の関数に戻っていくと、
ip_rcv->icmp_unreachと来ていることがわかる。さらにトレースすると、以下の
トレースが取れるようになる。
#[1]kdb> bt
# EBP EIP Function(args)
#0xc1229e74 0xc01e92bf ip_run_ipprot+0x3f (0xc191fb60, 0xc76cdc70, 0xc030e108, 0x1, 0x1)
# kernel .text 0xc0100000 0xc01e9280 0xc01e92e0
#0xc1229eac 0xc01e93f6 ip_local_deliver+0x116 (0xc01051b0, 0xffffe000, 0xc1228000, 0xc1228000, 0xc1228000)
# kernel .text 0xc0100000 0xc01e92e0 0xc01e9460
# 0xc0106fac ret_from_intr
# kernel .text 0xc0100000 0xc0106fac 0xc0106fcc
#Interrupt registers:
#eax = 0x00000000 ebx = 0xc01051b0 ecx = 0xffffe000 edx = 0xc1228000
#esi = 0xc1228000 edi = 0xc1228000 esp = 0xc1229fac eip = 0xc01051df
#ebp = 0xc1229fac xss = 0x00000018 xcs = 0x00000010 eflags = 0x00000246
#xds = 0xc1220018 xes = 0xc1220018 origeax = 0xffffff00 ®s = 0xc1229f78
# 0xc01051df default_idle+0x2f
# kernel .text 0xc0100000 0xc01051b0 0xc01051f0
#0xc1229fc0 0xc0105272 cpu_idle+0x52
# kernel .text 0xc0100000 0xc0105220 0xc0105290
これで、大体のコードの流れがわかる。
しながら、breakpointをうまく張って上位の関数に戻っていくと、
ip_rcv->icmp_unreachと来ていることがわかる。さらにトレースすると、以下の
トレースが取れるようになる。
#[1]kdb> bt
# EBP EIP Function(args)
#0xc1229e74 0xc01e92bf ip_run_ipprot+0x3f (0xc191fb60, 0xc76cdc70, 0xc030e108, 0x1, 0x1)
# kernel .text 0xc0100000 0xc01e9280 0xc01e92e0
#0xc1229eac 0xc01e93f6 ip_local_deliver+0x116 (0xc01051b0, 0xffffe000, 0xc1228000, 0xc1228000, 0xc1228000)
# kernel .text 0xc0100000 0xc01e92e0 0xc01e9460
# 0xc0106fac ret_from_intr
# kernel .text 0xc0100000 0xc0106fac 0xc0106fcc
#Interrupt registers:
#eax = 0x00000000 ebx = 0xc01051b0 ecx = 0xffffe000 edx = 0xc1228000
#esi = 0xc1228000 edi = 0xc1228000 esp = 0xc1229fac eip = 0xc01051df
#ebp = 0xc1229fac xss = 0x00000018 xcs = 0x00000010 eflags = 0x00000246
#xds = 0xc1220018 xes = 0xc1220018 origeax = 0xffffff00 ®s = 0xc1229f78
# 0xc01051df default_idle+0x2f
# kernel .text 0xc0100000 0xc01051b0 0xc01051f0
#0xc1229fc0 0xc0105272 cpu_idle+0x52
# kernel .text 0xc0100000 0xc0105220 0xc0105290
これで、大体のコードの流れがわかる。
8別のスレの1
NGNGちょっとレジスタをいじって、不正処理を起こしてみよう。
とりあえず、bc * コマンドで設定した全てのbreakpointを消して、再実行。
で、pingコマンドを終了。しばらくまってicmpの処理が終わったのを待って、
icmp_unreachに再度breakpointを設定。ping実行。ssコマンドを使って
icmp_unreach+0x18までステップトレース。次の命令はこの命令のはず。
0xc0206f78 icmp_unreach+0x18mov 0x5c(%edx),%ebx
これで、edxに0を入れれば当然不正処理が起きる。rm edx 0 でedxに0が入る。
確認はrdコマンドで出来る。edxに0が入ったことが分かったらgコマンドで再実行。
[0]kdb> g
Unable to handle kernel NULL pointer dereference at virtual address 0000005c
printing eip:
c0206f78
*pde = 00000000
Entering kdb (current=0xc0312000, pid 0) on processor 0 Oops: Oops
due to oops @ 0xc0206f78
eax = 0x00000014 ebx = 0xc226d0a0 ecx = 0x00000008 edx = 0x00000000
esi = 0xc1aeaea4 edi = 0xc7536c00 esp = 0xc0313e30 eip = 0xc0206f78
ebp = 0xc0313e58 xss = 0x00000018 xcs = 0x00000010 eflags = 0x00010286
xds = 0x00000018 xes = 0x00000018 origeax = 0xffffffff ®s = 0xc0313dfc
のようなメッセージを出して止まるはず。メッセージより、0xc0206f78のコードが
0x5c番地をアクセスして不正処理で止まったことがわかる。[0]kdb> id %eip とすれば
0xc0206f78 icmp_unreach+0x18mov 0x5c(%edx),%ebx
とでるから、edx=0が原因となったことがわかる。
とりあえず、bc * コマンドで設定した全てのbreakpointを消して、再実行。
で、pingコマンドを終了。しばらくまってicmpの処理が終わったのを待って、
icmp_unreachに再度breakpointを設定。ping実行。ssコマンドを使って
icmp_unreach+0x18までステップトレース。次の命令はこの命令のはず。
0xc0206f78 icmp_unreach+0x18mov 0x5c(%edx),%ebx
これで、edxに0を入れれば当然不正処理が起きる。rm edx 0 でedxに0が入る。
確認はrdコマンドで出来る。edxに0が入ったことが分かったらgコマンドで再実行。
[0]kdb> g
Unable to handle kernel NULL pointer dereference at virtual address 0000005c
printing eip:
c0206f78
*pde = 00000000
Entering kdb (current=0xc0312000, pid 0) on processor 0 Oops: Oops
due to oops @ 0xc0206f78
eax = 0x00000014 ebx = 0xc226d0a0 ecx = 0x00000008 edx = 0x00000000
esi = 0xc1aeaea4 edi = 0xc7536c00 esp = 0xc0313e30 eip = 0xc0206f78
ebp = 0xc0313e58 xss = 0x00000018 xcs = 0x00000010 eflags = 0x00010286
xds = 0x00000018 xes = 0x00000018 origeax = 0xffffffff ®s = 0xc0313dfc
のようなメッセージを出して止まるはず。メッセージより、0xc0206f78のコードが
0x5c番地をアクセスして不正処理で止まったことがわかる。[0]kdb> id %eip とすれば
0xc0206f78 icmp_unreach+0x18mov 0x5c(%edx),%ebx
とでるから、edx=0が原因となったことがわかる。
NGNG
あとは俺は基本的にsage進行。オリジナルスレは適当にうっちゃってsage out
させてくれ。
させてくれ。
NGNG
○岡さん?>>別スレ1
11別のスレの1
NGNG俺は自分のwebページも持ってない、しがない一プログラマです。だから誰も
知らないでしょう。
知らないでしょう。
NGNG
kernel毎刺さってるときって、どうデバッグすればいい?
再現出来ないときがほとんどだし、めったにでないけど。
ダンプとかってとれるのかな。
再現出来ないときがほとんどだし、めったにでないけど。
ダンプとかってとれるのかな。
14別のスレの1
NGNGKDBがonになっていれば、コードが無限ループになっている場合は普通に
pauseキーでbreakinすれば回ってる場所で止まるはず。マルチプロセッサに
すれば、確実に止まるね。cpu 0が無限ループしてもcpu 1がbreakinの処理を
行えるから。
コードが無限ループしているわけじゃなくてシンクロナイズリソースで止まって
る場合はちょっと面倒。多分btaで全プロセスのスタックを取って怪しいリソースを
見つけてそれの待ち行列リストからたぐっていくしかないんじゃないかな。
ダンプを取れるカーネルは同じくSGIが提供してる。使ったこと無いけど。
基本的にダンプがあっても、そうとう運がよくないとトラブルシュートできない
からね。下手にダンプがあると、素人さんが「ダンプがあるからなんでもできるだろ」
と思い込むから危険。すでに稼動しているシステムだとかなり難しいんだけど、
それでもライブでデバッグできるような状況にもっていくのが重要かな。
pauseキーでbreakinすれば回ってる場所で止まるはず。マルチプロセッサに
すれば、確実に止まるね。cpu 0が無限ループしてもcpu 1がbreakinの処理を
行えるから。
コードが無限ループしているわけじゃなくてシンクロナイズリソースで止まって
る場合はちょっと面倒。多分btaで全プロセスのスタックを取って怪しいリソースを
見つけてそれの待ち行列リストからたぐっていくしかないんじゃないかな。
ダンプを取れるカーネルは同じくSGIが提供してる。使ったこと無いけど。
基本的にダンプがあっても、そうとう運がよくないとトラブルシュートできない
からね。下手にダンプがあると、素人さんが「ダンプがあるからなんでもできるだろ」
と思い込むから危険。すでに稼動しているシステムだとかなり難しいんだけど、
それでもライブでデバッグできるような状況にもっていくのが重要かな。
15親切君
NGNGNGNG
NGNG
結局1はどうしたいのさ?
2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
18名無しさん@お腹いっぱい。
NGNG19別のスレの1
NGNGうーん、どうやっても煽られるのね。みなまで書かんとわからんか。
前のスレを立てた動機はこの板で「Win2Kは落ちる」だと書かれることが
多いから、真実を知るために立てた。Win板やUNIX板に立てなかったのは
それらの板では落ちるなどということは書かれることが殆どなかったからだ。
その後Linux専用で立てろという意見があり、誰かが新スレを立てれば俺は
そっちに移ると言った。そしたら誰かが新スレを立てたから言った通り俺は
ここに移ってきて、Linux専用の内容をここにコピペしたまでだ。
お呼びでないなら、適当にうっちゃってsageてくれ。
前のスレを立てた動機はこの板で「Win2Kは落ちる」だと書かれることが
多いから、真実を知るために立てた。Win板やUNIX板に立てなかったのは
それらの板では落ちるなどということは書かれることが殆どなかったからだ。
その後Linux専用で立てろという意見があり、誰かが新スレを立てれば俺は
そっちに移ると言った。そしたら誰かが新スレを立てたから言った通り俺は
ここに移ってきて、Linux専用の内容をここにコピペしたまでだ。
お呼びでないなら、適当にうっちゃってsageてくれ。
NGNG
うん、1の言う事は間違ってない。
Win2Kは落ちるとろくに使ってもない奴がいうのは間違い。
まあ、それでもいろんなとこで落ちるとか不具合の話を
聞くのは何故だか知らないが(藁
しかし、素直に1の技術力には感心するな、
Win2Kは落ちるとろくに使ってもない奴がいうのは間違い。
まあ、それでもいろんなとこで落ちるとか不具合の話を
聞くのは何故だか知らないが(藁
しかし、素直に1の技術力には感心するな、
NGNG
1=別スレの1=18
23age
NGNGage
24名無しさん@お腹いっぱい。
NGNGこれはあげよう
25名無しさん@お腹いっぱい。
NGNG1=別スレの1=18=20=22
めっちゃわかりやすい。
めっちゃわかりやすい。
26名無しさん@お腹いっぱい。
NGNGさすが妄想力。おみそれしました。
27名無しさん@お腹いっぱい。
NGNG結局1はどうしたいのさ?
2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
2chでお山の大将になりたいの?まあそれにさえ失敗してるけどね。
MLへ行くなりKernel Debug Mini-HOWTO書くなりした方が尊敬されると思うよ。
まあここが1がやっと見つけた居場所なら何も言わないけどな。
いろんなスレで叩かれたり相手にされなくなったりしたみたいだから。
NGNG
前スレの1みたいな、自分のオタク趣味のひけらかしなんぞ、
誰も求めていません。てゆうかウザイだけです。
大体そんなマニア的過ぎる偏った知識なんて、実際の仕事じゃ
何の役にも立たないっての。それこそ、そんだけ詳しいんだっ
たら、UNIXカーネルの作り方のコツとか教えてくれた方がよほど
まともだぜ。
誰も求めていません。てゆうかウザイだけです。
大体そんなマニア的過ぎる偏った知識なんて、実際の仕事じゃ
何の役にも立たないっての。それこそ、そんだけ詳しいんだっ
たら、UNIXカーネルの作り方のコツとか教えてくれた方がよほど
まともだぜ。
29名無しさん@お腹いっぱい。
NGNG30名無しさん@お腹いっぱい。
NGNGはじめマッチョ、1のちんこザマス。
なんか、又もやミーの親分がこんなスレを勃てて…いや、立ててしまって
1のちんこをやってるミーとしても、恥ずかしいザマス。
ミーも恥ずかしくて顔見せできないザンスよ。ま、ミーは真性包茎ちんこなので
顔見せしたくてもできないザンスが…
思えば1もかわいそうな奴で、小学生の時にクラスのマドンナ的存在の
縦笛を舐めてる所を目撃されてからというもの、すっかりいぢめられっこに
成り下がって…(涙)これなら、クラスの誰からも相手にされない奴だった
昔のほうがまだマシだったザマスよ。
あ、そうそう。最近1は、包茎手術をしようと目論んでるザンス。
彼女がいないどころか、レイディと口さえきいた事もないのになぜ
包茎を治したがるのか…今回のクソスレの件といい、1の考えてる事は
ミーにもさっぱり解からないザマス。
いずれミーもカワイコチャンのまんこにズボッと入りたいザマスが、
それも叶わぬ夢なんザンしょうねぇ…もうPCディスプレイに表示されてる
美少女アニメキャラに向かって射精する毎日はこりごりザンス。
なんか、又もやミーの親分がこんなスレを勃てて…いや、立ててしまって
1のちんこをやってるミーとしても、恥ずかしいザマス。
ミーも恥ずかしくて顔見せできないザンスよ。ま、ミーは真性包茎ちんこなので
顔見せしたくてもできないザンスが…
思えば1もかわいそうな奴で、小学生の時にクラスのマドンナ的存在の
縦笛を舐めてる所を目撃されてからというもの、すっかりいぢめられっこに
成り下がって…(涙)これなら、クラスの誰からも相手にされない奴だった
昔のほうがまだマシだったザマスよ。
あ、そうそう。最近1は、包茎手術をしようと目論んでるザンス。
彼女がいないどころか、レイディと口さえきいた事もないのになぜ
包茎を治したがるのか…今回のクソスレの件といい、1の考えてる事は
ミーにもさっぱり解からないザマス。
いずれミーもカワイコチャンのまんこにズボッと入りたいザマスが、
それも叶わぬ夢なんザンしょうねぇ…もうPCディスプレイに表示されてる
美少女アニメキャラに向かって射精する毎日はこりごりザンス。
31名無しさん@お腹いっぱい。
NGNG>>83
おれアニオタじゃないのだが、「ちょっとなら」そういうネタを
入れてもいいと思う。それが一種彼らの楽しみでもあるわけだしさ。
逆にアニメじゃなくても、趣味の押しつけがましい
ドキュメントやサンプルがあったら引くわな。
何事も程度の問題ってことで。
おれアニオタじゃないのだが、「ちょっとなら」そういうネタを
入れてもいいと思う。それが一種彼らの楽しみでもあるわけだしさ。
逆にアニメじゃなくても、趣味の押しつけがましい
ドキュメントやサンプルがあったら引くわな。
何事も程度の問題ってことで。
NGNG
33名無しさん@お腹いっぱい。
NGNG名スレの予感
3418,22
NGNGNGNG
>>28
カーネルの再構築の仕方なんて検索すれば腐るほどでてくるじゃん。
それにあれただ単にmakefileを決まった引数つけて実行させてるだけでしょ。
あんなの誰でも出来るぞ。コツも何もあったもんじゃない。
うまくいかなかったらmakefileを読みなさい。
他のページに書かれてないことを書くほうがよっぽど有用だろ。君が有用で
ないと思うのはこういうデバッグを必要とするような事をしてないからだよ。
実際ドライバを書いたりすればカーネルデバッガが非常に有用なのが分かるよ。
Winのこととは関係ないことかいてるのになんで煽るのかな。君、個人的に
なんか俺に恨みあるの?前スレで突っかかってきた奴がまだ粘着してるわけじゃ
ないよな。
カーネルの再構築の仕方なんて検索すれば腐るほどでてくるじゃん。
それにあれただ単にmakefileを決まった引数つけて実行させてるだけでしょ。
あんなの誰でも出来るぞ。コツも何もあったもんじゃない。
うまくいかなかったらmakefileを読みなさい。
他のページに書かれてないことを書くほうがよっぽど有用だろ。君が有用で
ないと思うのはこういうデバッグを必要とするような事をしてないからだよ。
実際ドライバを書いたりすればカーネルデバッガが非常に有用なのが分かるよ。
Winのこととは関係ないことかいてるのになんで煽るのかな。君、個人的に
なんか俺に恨みあるの?前スレで突っかかってきた奴がまだ粘着してるわけじゃ
ないよな。
36名無しさん@お腹いっぱい。
NGNGNGNG
NGNG
>>35
誰も再構築の話なんて訊いていませんけど?
てゆうか、なんでカーネルの作り方=カーネルの再構築に
なるんだよ? 凄い脳内変換だねえ、やっぱお前バカだわ。
大体他のページで書かれていない事で有用なのがカーネルの
デバッグなわけ? 有用なのはお前のオタク趣味にとってだろ。
しかもカーネルのデバッグが仕事で有用? そんなのお前の
仕事だけだよ。普通のエンジニアやプログラマーはそんな
面倒なことはしないで、もっと別の解決方法を考えるに決ま
ってんだろ。
誰も再構築の話なんて訊いていませんけど?
てゆうか、なんでカーネルの作り方=カーネルの再構築に
なるんだよ? 凄い脳内変換だねえ、やっぱお前バカだわ。
大体他のページで書かれていない事で有用なのがカーネルの
デバッグなわけ? 有用なのはお前のオタク趣味にとってだろ。
しかもカーネルのデバッグが仕事で有用? そんなのお前の
仕事だけだよ。普通のエンジニアやプログラマーはそんな
面倒なことはしないで、もっと別の解決方法を考えるに決ま
ってんだろ。
39親切な人
NGNG>>38
あなたの意見はとても偏見に満ちています。
それは、カーネルにはまだまだバグが多く潜んでいることを
知らないということが原因です。
また、デバイスドライバの開発は、すなわち、カーネルの開発です。
デバイスドライバのデバッグは、すなわち、カーネルのデバッグです。
あなたの意見はとても偏見に満ちています。
それは、カーネルにはまだまだバグが多く潜んでいることを
知らないということが原因です。
また、デバイスドライバの開発は、すなわち、カーネルの開発です。
デバイスドライバのデバッグは、すなわち、カーネルのデバッグです。
NGNG
>カーネルにはまだまだバグが多く潜んでいる
そんなことくらいは知っている。
ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
自分の仕事にしている人はかなり限られる。少なくともエンジニアや
プログラマーの大多数を占める、システムの構築や運用・管理、モジ
ュールの設計・コーディングをやっている人間がこんなことに手を出す
とはとても思えん。
>デバイスドライバの開発は、すなわち、カーネルの開発
>デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
そんなわけねえだろ(w
そんなことくらいは知っている。
ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
自分の仕事にしている人はかなり限られる。少なくともエンジニアや
プログラマーの大多数を占める、システムの構築や運用・管理、モジ
ュールの設計・コーディングをやっている人間がこんなことに手を出す
とはとても思えん。
>デバイスドライバの開発は、すなわち、カーネルの開発
>デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
そんなわけねえだろ(w
NGNG
>>40
> ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
> 自分の仕事にしている人はかなり限られる。少なくともエンジニアや
> プログラマーの大多数を占める、システムの構築や運用・管理、モジ
> ュールの設計・コーディングをやっている人間がこんなことに手を出す
> とはとても思えん。
仕事と決めつけるのはなぜ?趣味でやる人は依然多いと思うけど?
少なくとも、デスクトップのテーマがどうとか、最強のウインドウマネージャとか
いう話題よりもはるかに有益だと思うけど。
> >デバイスドライバの開発は、すなわち、カーネルの開発
> >デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
>
> そんなわけねえだろ(w
そんなわけあるよ。
> ただ、カーネルのデバッグなんてとんでもなく時間がかかる作業を
> 自分の仕事にしている人はかなり限られる。少なくともエンジニアや
> プログラマーの大多数を占める、システムの構築や運用・管理、モジ
> ュールの設計・コーディングをやっている人間がこんなことに手を出す
> とはとても思えん。
仕事と決めつけるのはなぜ?趣味でやる人は依然多いと思うけど?
少なくとも、デスクトップのテーマがどうとか、最強のウインドウマネージャとか
いう話題よりもはるかに有益だと思うけど。
> >デバイスドライバの開発は、すなわち、カーネルの開発
> >デバイスドライバのデバッグは、すなわち、カーネルのデバッグ
>
> そんなわけねえだろ(w
そんなわけあるよ。
NGNG
>>40
何なんだこのLin厨の世間知らず振りは。
何なんだこのLin厨の世間知らず振りは。
NGNG
>>42
>仕事と決めつけるのはなぜ?
別に決めつけてねえよ、よく読め。
>趣味でやる人は依然多いと思うけど?
だからそんなヲタクの為のオナニースレはLinux板にいらねえって
言ってんだよ。やたら詳しいけど、同時にものすごく偏っていて、
実務的でもなければ学術的でもない知識をひけらかす。そもそも
ソフトにバグがあるのは当たり前。そのうち致命的な物については
発見されたらその都度パッチを貼り、そうでないものについては
だましだまし使うのがまともなユーザー。それをまるで完璧なもの
を求めるかのようにネチネチとイジるなんて、やってることが極めて
非生産的&病的。それこそセキュリティの弱いサーバーをクラック
して遊ぶ外道と大して変わらねえよ。
>仕事と決めつけるのはなぜ?
別に決めつけてねえよ、よく読め。
>趣味でやる人は依然多いと思うけど?
だからそんなヲタクの為のオナニースレはLinux板にいらねえって
言ってんだよ。やたら詳しいけど、同時にものすごく偏っていて、
実務的でもなければ学術的でもない知識をひけらかす。そもそも
ソフトにバグがあるのは当たり前。そのうち致命的な物については
発見されたらその都度パッチを貼り、そうでないものについては
だましだまし使うのがまともなユーザー。それをまるで完璧なもの
を求めるかのようにネチネチとイジるなんて、やってることが極めて
非生産的&病的。それこそセキュリティの弱いサーバーをクラック
して遊ぶ外道と大して変わらねえよ。
NGNG
>>45
申し訳ないけど、このスレの情報が役に立っている人もいるんだ。
スレを汚さないでほしいんだが・・・
あと、パッチを貼ったりしているなら、そのパッチを作った人達にも
ほんの少しでもいいから敬意を払ってはくれまいか? たのむよ・・・
申し訳ないけど、このスレの情報が役に立っている人もいるんだ。
スレを汚さないでほしいんだが・・・
あと、パッチを貼ったりしているなら、そのパッチを作った人達にも
ほんの少しでもいいから敬意を払ってはくれまいか? たのむよ・・・
NGNG
仕事してるふつーの技術者は2ch見てくだらん煽りいれてる暇があったら
他にすることがあることくらい知ってるでしょう。
ヴァカはほっとくのが吉。
他にすることがあることくらい知ってるでしょう。
ヴァカはほっとくのが吉。
48login:Penguin
NGNGNGNG
NGNG
「知的好奇心」や「向上心」の現れ=カーネルデバッグ?
こりゃまたとんでもない勘違いだね。
こりゃまたとんでもない勘違いだね。
51login:Penguin
NGNG>>50
なんでそんなにテクニカルな話が嫌いなの?
なんでそんなにテクニカルな話が嫌いなの?
NGNG
>>45
>>それをまるで完璧なものを求めるかのようにネチネチとイジるなんて、
>>やってることが極めて非生産的&病的。
おいおい自分たち自身を否定してどうする。エンジニアリングをやる以上
完璧を追い求めるのは当然だろ。それを出来ないようならエンジニア
止めなさい。
ネチネチといじれるのがLinuxのいい所だろ。せっかくソースがあるんだから
使えよ。君みたいなのがソースがあるのがLinuxのいい所だなんて
言うのはまことおこがましいな。
>>それをまるで完璧なものを求めるかのようにネチネチとイジるなんて、
>>やってることが極めて非生産的&病的。
おいおい自分たち自身を否定してどうする。エンジニアリングをやる以上
完璧を追い求めるのは当然だろ。それを出来ないようならエンジニア
止めなさい。
ネチネチといじれるのがLinuxのいい所だろ。せっかくソースがあるんだから
使えよ。君みたいなのがソースがあるのがLinuxのいい所だなんて
言うのはまことおこがましいな。
NGNG
55login:Penguin
NGNGプロセステーブルが2.4から変更になってメモリの許すまで
オッケーになったとか何とかいってるが、
main(){while(fork());}
でテーブルをいっぱいに出来てしまうのはかわらない。
しかもこれ、一般ユーザでシステムダウン可能なんだよ。
これをなんとかしてほしい。
rootでのメンテ用にプロセステーブルを少しだけあけておくことができれば
killできるんだけど・・・
オッケーになったとか何とかいってるが、
main(){while(fork());}
でテーブルをいっぱいに出来てしまうのはかわらない。
しかもこれ、一般ユーザでシステムダウン可能なんだよ。
これをなんとかしてほしい。
rootでのメンテ用にプロセステーブルを少しだけあけておくことができれば
killできるんだけど・・・
NGNG
NGNG
ちょっと刺激すると神経過敏なLinux厨房が無差別攻撃してくれるから、この板はとても荒らしやすい。尋常じゃないというか、単純というべきか。Win厨は嫌いだ!と主張するLinux厨房が私の思惑通りに動いて、Linuxユーザー同士気分の悪い思いをする方向に自体が簡単に転がっていく。便利な人たちだね、Linux厨って。これからも頑張って初心者の立ち入りを許さない刺々しい最悪の雰囲気を作り出してくれ。
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
NGNG
ちょっと刺激すると神経過敏なLinux厨房が無差別攻撃してくれるから、この板はとても荒らしやすい。尋常じゃないというか、単純というべきか。Win厨は嫌いだ!と主張するLinux厨房が私の思惑通りに動いて、Linuxユーザー同士気分の悪い思いをする方向に自体が簡単に転がっていく。便利な人たちだね、Linux厨って。これからも頑張って初心者の立ち入りを許さない刺々しい最悪の雰囲気を作り出してくれ。
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
60login:Penguin
NGNG>>59
おおコピペ犬だ。
おおコピペ犬だ。
NGNG
ちょっと刺激すると神経過敏なLinux厨房が無差別攻撃してくれるから、この板はとても荒らしやすい。尋常じゃないというか、単純というべきか。Win厨は嫌いだ!と主張するLinux厨房が私の思惑通りに動いて、Linuxユーザー同士気分の悪い思いをする方向に自体が簡単に転がっていく。便利な人たちだね、Linux厨って。これからも頑張って初心者の立ち入りを許さない刺々しい最悪の雰囲気を作り出してくれ。
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
NGNG
ちょっと刺激すると神経過敏なLinux厨房が無差別攻撃してくれるから、この板はとても荒らしやすい。尋常じゃないというか、単純というべきか。Win厨は嫌いだ!と主張するLinux厨房が私の思惑通りに動いて、Linuxユーザー同士気分の悪い思いをする方向に自体が簡単に転がっていく。便利な人たちだね、Linux厨って。これからも頑張って初心者の立ち入りを許さない刺々しい最悪の雰囲気を作り出してくれ。
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
NGNG
ちょっと刺激すると神経過敏なLinux厨房が無差別攻撃してくれるから、この板はとても荒らしやすい。尋常じゃないというか、単純というべきか。Win厨は嫌いだ!と主張するLinux厨房が私の思惑通りに動いて、Linuxユーザー同士気分の悪い思いをする方向に自体が簡単に転がっていく。便利な人たちだね、Linux厨って。これからも頑張って初心者の立ち入りを許さない刺々しい最悪の雰囲気を作り出してくれ。
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
このカキコにもたっぷりと負け惜しみのレスがつくだろうけど、そいつらが私の思惑通りに動いてくれる犬たちだ :p
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 第2次大戦に触れトランプ氏「米中は同盟国」、当時は中華民国…「抗日」巡る中国の言説補強する恐れ ★7 [蚤の市★]
- 高市総理「日米は非常に強い絆で結ばれた同盟国」 トランプ大統領の“中国は同盟国だった”発言受け [首都圏の虎★]
- 「暗い未来に子供を産みたくない…」それでも左派よりも右派の方が「たくさん子供を産む」のはなぜか【米研究】 [首都圏の虎★]
- 【野球】広島東洋カープの矢野雅哉・前川誠太選手を書類送検 ゾンビたばこを巡る容疑 広島県警 [Ailuropoda melanoleuca★]
- パナソニックが市販カーナビ生産終了へ 30年以上の歴史に幕、スマホナビの普及など受け [少考さん★]
- 【速報】 高市首相 「円の過小評価は問題だ」 ★4 [お断り★]
- 【高市悲報】ヤフーの雨雲レーダー見たらあと1時間ぐらいで印旛沼周辺が大雨予想になっててワロタw [616817505]
- 今日もきのうもずっと5chなの?
- 「みい山好きそう」「みい山アニメ化反対に反対してそう」「自分を山田だと思ってそう」←ひどくね?
- 女性「たのしいピクニック女は、男は好きでも女が見るとめっちゃ不安になる。生きる力がない女なのよ。それが分からないの?」 [592058334]
- 連休特別企画
- ずっとダブパンでいいのに。👊😅👊🏡