GDB si,ni,s,n的区别

时间:2025-02-26 07:05:39

n/s都是C语言级的断点定位。 s会进入C函数内部,但是不会进入没有定位信息的函数(比如没有加-g编译的代码,因为其没有C代码的行数标记,没办法定位),n不会。

ni/si都是汇编级别的断点定位。si会进入汇编和C函数内部,ni不会。


归纳:当要进入没有调试信息的库函数调试的时候,用si是唯一的方法。

当进入有调试信息的函数,用si和s都可以,但是他们不同,si是定位到汇编级别的第一个语句,但是s是进入到C级别的第一个语句

譬如si就是在0x80483e8.用s就是0x80483f1;