lldbコマンドの使い方
もう完全に忘れていたので、メモ!
gcc -g ./test.c
こんな感じで起動
lldb ./a.out
listでソースコードをみれる。breakpointを設定したい行番号を確認。
(lldb) list 7 int main(void){ 8 int a,b,i=0,j=0; 9 int checkresult; 10 char tmp[5]; ...
ちなみにenterをおしたら前と同じコマンドの繰り返し。
breakpointを設定。breakpointの"b"と"ソースコードのファイル名":"行番号"
(lldb) b test.c:25
breakpointを設定後、rで実行。
(lldb) r Process 2604 launched: './a.out' (x86_64)
sで1行ずつ実行。nでも進む。nだと関数とかは飛ばしてくれる。
(lldb) s 23 M[j][strlen(M[j]) - 1] = '\0'; 24 } 25 for(i=0;i<a;i++){ -> 26 for(j=0;j<a;j++){
"print 変数名"で実行しているタイミングの変数の値が確認できる
(lldb) print i (int) $6 = 0 (lldb) print N[0] (char [201]) $8 = "0000"
なんかちょっとポインタの勉強になっておもしろい。
(lldb) print N (char (*)[201]) $10 = 0x00007fff5fbf5c78 (lldb) print *N (char [201]) $11 = "0000" (lldb) print *N[0] (char) $12 = '0'
quitでおしまい。
(lldb) quit Quitting LLDB will kill one or more processes. Do you really want to proceed: [Y/n] Y