Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
アーム アセンブリ コードのこの部分をデバッグする必要があります。
for3: ldrb r3,[r4,#0] ldr r0,=format2 mov r1,r3 bl printf add r4,r4,#1 cmp r3,#'\0' bne for3
デバッグすると、数百行のコードをprintf通過するcのステートメントが含まれています。printf外部ライブラリ関数をスキップして、コードのみを実行する必要があります。どうやってするか?
printf
関数呼び出しをステップオーバーする代わりにni( ) を使用します。nextisi
ni
nexti
si
nexti nexti arg ni 1 つの機械語命令を実行しますが、それが関数呼び出しの場合は、関数が戻るまで続行します。のように、引数は繰り返し回数nextです。
nexti nexti arg ni
nexti arg
1 つの機械語命令を実行しますが、それが関数呼び出しの場合は、関数が戻るまで続行します。のように、引数は繰り返し回数nextです。
next
終了は(関数に入ると)トリックを行いますが、これを繰り返し行う必要がある場合は、gdb のスキップコマンドも調べてください。