タグ

ブックマーク / www.geekpage.jp (2)

  • 既に起動しているプロセスをgdbで制御する:Geekなぺーじ

    デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま

  • Geekなぺーじ : IPv4とIPv6の違い

    ここでは、プロトコルに起因するIPv4とIPv6の違いを扱っています。 デュアルスタック環境に伴う問題点などは今回は範疇外です。 IPv4のアドレスは32ビット、IPv6のアドレスは128ビットである点が最も大きな違いです。 ただし、IPv6のアドレスのうち上位64ビットがネットワークアドレスとして利用されるため、実際には「128ビットという無限のアドレス」というのは運用上は事実ではなく、インターネットの43億倍の数倍(ネットワーク数なので正確には言いにくいため)ぐらいです。 IPv4では「198.51.100.254」のような表記ですが、IPv6では「2001:db8:aaaa:bbbb:cccc:dddd:eeee:1」のように「:」で区切る表記になります。 「::1」のように、ゼロを省略することも可能です。 IPv4では通信の種類は、ユニキャスト、ブロードキャスト、マルチキャストの3

  • 1