- 论坛徽章:
- 1
|
本帖最后由 asker160 于 2016-10-21 16:51 编辑
编译运行下面一个小程序:
- #include<stdlib.h>
- #include<math.h>
- #include<stdio.h>
- int i=3;
- void f(){
- ++i;
- printf("%d\n",i);
- }
- int main(){
- double d=cos(0.0);
- printf("%f\n",d);
- return 0;
- }
复制代码 它打印"1.000000",如预期。如果我在gdb命令行调用函数:
- (gdb) b main
- Breakpoint 1 at 0x40055b: file x.c, line 10.
- (gdb) r
- Starting program: /home/x/a.out
- Breakpoint 1, main () at x.c:10
- 10 ++i;
- (gdb) call f()
- 4
- (gdb) call f() # ok
- 5
- (gdb) call cos(0.0)
- No symbol "cos" in current context. # 为什么找不到?
- (gdb) call printf("%d\n",i) # ok
- 5
- $1 = 2
- (gdb) call putchar('a')
- $2 = 97
复制代码 我在编译的时候已经指定了-g,所以有调试信息。为何printf/putchar都可以条用,而math里面的cos却不能调用?
我在ubuntu16.04上
多谢指点!
|
|