debug
この記事はLinux Advent Calendar 2019の1日目の記事です。 はじめに 環境 おことわり uname(1) uname(1)が出力する内容 strace(1) gdb(1) bpftrace systemtap Kernel Hack Livepatch おまけ RHEL 8.1 CentOS 8 まとめ はじめに 本記事ではLinuxサーバのホス…
FedoraではkernelのテストイベントとかGnome 3.34 Test Day、I18N Test Day などのテストイベントがちょくちょくあります。 今回はKernel 5.3 Test Weekの備忘録です。ちなみに、この手のイベントはfedora MAGAZINEで紹介されることがあります。 今回の参加…
この記事はLinux Advent Calendar 2018の1日目ですΣ(゚∀゚ノ)ノキャー イントロ ほんとは別の内容にしようと思ってたのですが、進めてる途中でカーネルのデバッグをするハメになったのでカーネルデバッグをネタにしてみました。カーネルのデバッグと言っても普通の…
gdb turns off ASLR « codeblogを見ていてpersonality(2)を使えば良いのか〜と知ったのでめもです。 tl;dr personality(2)でADDR_NO_RANDOMIZEをセットすればoffにできる。 personality(2) aslr以外にも設定可能な項目はいくつか有ります。設定されている内…
libbfdの使い方のめもです。利用してるバージョンはbinutils-devel-2.31.1-13.fc29.x86_64です。 nmもどき アドレスとセクション名、それにdebug情報があればファイル名と行数を表示。連想配列が使いたかったのでヘッダファイルだけで実装されてるuthashとい…
カーネルをgdbでリモートデバッグできるようにするかーとか思ってやってたわけです。 しかし、下記のような感じでちょっとハマってました。 ブレークポイントが効かなかったり vmlinuxとvmlinuzの組が合ってるのにシンボル名が出なかったり Cannot access me…
rpmパッケージとかは通常のパッケージとデバッグ用のパッケージを分けて、debugしたいときはデバッグ情報付きのパッケージをインストールしますよね。あれがどんな感じで動いているのか確認したのでメモです。 使っている機能としては、gdbのデバッグ情報の…
昨日のoopsはこれです.まず,oopsにある原因のコードの場所を見ます. [12643.727359] RIP: 0010:[<ffffffffa02a00ae>] [<ffffffffa02a00ae>] count_free+0xae/0x131 [minix]そうすると,count_free()という関数で落ちていることがわかります. 後ろの0xaeはバグの場所で,0x131は関数のサイズで</ffffffffa02a00ae></ffffffffa02a00ae>…
昨日久々に,double freeのバグに当たったので,それのデバッグ方法をメモ書き.こんな感じで,2重にfreeするバグを持ったプログラムがあったとして, サンプルなので,原因は簡単に分かりますけど・・・ [masami@moonlight:~]% cat double_free.c #include <stdio.h> </stdio.h>…
こんなコードを書いて,Linux,Minixでかかる時間をtimeコマンドで見てみました. #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/wait.h> int main(int argc, char **argv) { pid_t pid; int max; int i; int pfd[2]; char buf[16]; if (argc != 1) max = atoi</sys/wait.h></sys/types.h></stdio.h></stdlib.h></unistd.h>…
テスト環境はこんな感じです。 [masami@moon:~/build/debug_test]% uname -a Linux moon 2.6.30-rc7-x86tip-tip #1 SMP Tue May 26 23:41:24 JST 2009 x86_64 GNU/Linux [masami@moon:~/build/debug_test]% gcc -v Using built-in specs. Target: x86_64-lin…
この前のDebug Hacks Nightで実演していたemacs + gdbの組み合わせは便利!! 今まではタブが使えるターミナルで一個目のタブでemacs、2個目のタブでgdbとゆう感じでやってたけど1画面で見れるし、 gdbでの実行状態とemacs上のカーソルが連携してくれるから…
BTSでのやりとりはここ発端は久々にIRCでもと思ってxchatをデスクトップのメニュー(当時はfluxboxだったような)からxchatを選択しても起動しなかったのがきっかけ。起動失敗した理由が得られなかったのでコマンドラインから打てば分かるだろうということで…