linux内核gdb调试,第i次时钟中断,断点和恢复点分别是内存中哪一条指令?

鹰眼白夜行 2019-05-17 11:42:43
(gdb) b do_timer
Breakpoint 1 at 0x73dd: file sched.c, line 307.
(gdb) c
Continuing.

Breakpoint 1, do_timer (cpl=3) at sched.c:307
307 sched.c: 没有那个文件或目录.
(gdb) x/5wx 0x73dd
0x73dd <do_timer>: 0xa11cec83 0x00021b40 0x1974c085 0x021b40a1
0x73ed <do_timer+16>: 0x40a34800
(gdb) disass 0x73dd
Dump of assembler code for function do_timer:
=> 0x000073dd <+0>: sub $0x1c,%esp
0x000073e0 <+3>: mov 0x21b40,%eax
0x000073e5 <+8>: test %eax,%eax
0x000073e7 <+10>: je 0x7402 <do_timer+37>
0x000073e9 <+12>: mov 0x21b40,%eax
0x000073ee <+17>: dec %eax
0x000073ef <+18>: mov %eax,0x21b40
0x000073f4 <+23>: mov 0x21b40,%eax
0x000073f9 <+28>: test %eax,%eax
0x000073fb <+30>: jne 0x7402 <do_timer+37>
0x000073fd <+32>: call 0x16725 <sysbeepstop>
0x00007402 <+37>: cmpl $0x0,0x20(%esp)
0x00007407 <+42>: je 0x741d <do_timer+64>
0x00007409 <+44>: mov 0x1cec0,%eax
0x0000740e <+49>: mov 0x250(%eax),%edx
0x00007414 <+55>: inc %edx
0x00007415 <+56>: mov %edx,0x250(%eax)
0x0000741b <+62>: jmp 0x742f <do_timer+82>
0x0000741d <+64>: mov 0x1cec0,%eax
0x00007422 <+69>: mov 0x254(%eax),%edx
0x00007428 <+75>: inc %edx
0x00007429 <+76>: mov %edx,0x254(%eax)
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) x/6wx 0x73dd
0x73dd <do_timer>: 0xa11cec83 0x00021b40 0x1974c085 0x021b40a1
0x73ed <do_timer+16>: 0x40a34800 0xa100021b
(gdb) info breakpoint1
Undefined info command: "breakpoint1". Try "help inf
...全文
575 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧