9.基础命令(nexti)

9.1命令原型

nexti 执行下一行的源代码中的一条汇编指令

9.2 使用样例

查看汇编

(gdb) disassemble 
Dump of assembler code for function main(int, char**):
   0x000055555555543b <+0>:     endbr64                                                                                   
   0x000055555555543f <+4>:     push   %rbp                                                                               
   0x0000555555555440 <+5>:     mov    %rsp,%rbp                                                                          
   0x0000555555555443 <+8>:     push   %rbx                                                                               
   0x0000555555555444 <+9>:     sub    $0x118,%rsp                                                                        
   0x000055555555544b <+16>:    mov    %edi,-0x114(%rbp)
   0x0000555555555451 <+22>:    mov    %rsi,-0x120(%rbp)
=> 0x0000555555555458 <+29>:    mov    %fs:0x28,%rax                                                                      
   0x0000555555555461 <+38>:    mov    %rax,-0x18(%rbp)
   0x0000555555555465 <+42>:    xor    %eax,%eax                                                                          
   0x0000555555555467 <+44>:    movl   $0x7b,-0xf4(%rbp)
   0x0000555555555471 <+54>:    movq   $0x363534,-0xa0(%rbp)
   0x000055555555547c <+65>:    movq   $0x0,-0x98(%rbp)
   0x0000555555555487 <+76>:    movq   $0x0,-0x90(%rbp)
   0x0000555555555492 <+87>:    movq   $0x0,-0x88(%rbp)
   0x000055555555549d <+98>:    movq   $0x0,-0x80(%rbp)
   0x00005555555554a5 <+106>:   movq   $0x0,-0x78(%rbp)
   0x00005555555554ad <+114>:   movq   $0x0,-0x70(%rbp)
   0x00005555555554b5 <+122>:   movq   $0x0,-0x68(%rbp)
   0x00005555555554bd <+130>:   movq   $0x0,-0x60(%rbp)
   0x00005555555554c5 <+138>:   movq   $0x0,-0x58(%rbp)
   0x00005555555554cd <+146>:   movq   $0x0,-0x50(%rbp)
   0x00005555555554d5 <+154>:   movq   $0x0,-0x48(%rbp)
--Type <RET> for more, q to quit, c to continue without paging--
(gdb) ni
0x0000555555555461      36      int main(int argc, char *argv[]) {                                                        
(gdb)
0x0000555555555465      36      int main(int argc, char *argv[]) {                                                        
(gdb)
38          int a = 123;                                                                                                  
(gdb)
39          char buf[128] = "456";                                                                                        
(gdb)
0x000055555555547c      39          char buf[128] = "456";                                                                
(gdb)
0x0000555555555487      39          char buf[128] = "456";

[!NOTE] 提示
stepi与ni 命令在汇编调试上的效果一致

(gdb) stepi
0x0000555555555492      39          char buf[128] = "456";                                                                
(gdb)
0x000055555555549d      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554a5      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554ad      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554b5      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554bd      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554c5      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554cd      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554d5      39          char buf[128] = "456";                                                                
(gdb)
0x00005555555554dd      39          char buf[128] = "456";   
posted @ 2026-05-19 22:51  BlackSnow  阅读(12)  评论(0)    收藏  举报