当我 运行 程序但在 gdb 中不起作用时,c++ srand 可以工作
c++ srand works when I run the program but doesn't work in gdb
c++ srand 在我 运行 程序时工作但在 gdb 中不工作。
我正在使用 Ubuntu 登录终端。
学习C++。
如果我只是执行它,我的程序 运行s 就应该如此。但我真的需要开始学习使用调试器。当我逐步执行程序时,对 srand 的调用出现以下错误。
12 srand(time(NULL));
(gdb)
__srandom (x=1451559304) at random.c:210
210 random.c: No such file or directory.
(gdb)
211 in random.c
(gdb)
210 in random.c
(gdb) Quit
这是程序的第一部分,非常简单。
1 #include <iostream>
2 #include <cstdlib>
3 #include <ctime>
4 #include <string>
5
6 using namespace std;
7
8
9 int main()
10 {
11 int array_size=0;
12 srand(time(NULL));
13 cout<<"\n\nWhat size of an array would you like?\n";
14 cout<<": ";
15 cin>>array_size;
16 int my_array[array_size];
17 for (int i=0;i<array_size;i++)
18 {
19 my_array[i]=(rand()%100)+1;
20 }
21 for(int i=0;i<array_size;i++)
22 {
23 cout<<"\n"<<my_array[i];
24
25 }
编译时我使用这一行。
g++ -g main.cpp -o a
当我启动调试器时,它使用这个。
gdb a
如有任何帮助,我将不胜感激。
谢谢!
您正在进入标准库源代码。假设您确实拥有源代码,您可以将 gdb 设置为使用 dir
或 set directories
来查找它们。但是大多数人没有他们的 C 标准库的源代码——除非你真的想调试标准库代码本身,否则我建议使用 n
(下一个)命令而不是 s
(步骤)跨过 srand
。
请注意,您收到的错误只是 gdb 找不到 srand
的源文件。它最终仍将单步执行该函数 - 但它需要一些单步执行,并且如果没有源代码来查看它在做什么,它是毫无意义的。
c++ srand 在我 运行 程序时工作但在 gdb 中不工作。 我正在使用 Ubuntu 登录终端。 学习C++。 如果我只是执行它,我的程序 运行s 就应该如此。但我真的需要开始学习使用调试器。当我逐步执行程序时,对 srand 的调用出现以下错误。
12 srand(time(NULL));
(gdb)
__srandom (x=1451559304) at random.c:210
210 random.c: No such file or directory.
(gdb)
211 in random.c
(gdb)
210 in random.c
(gdb) Quit
这是程序的第一部分,非常简单。
1 #include <iostream>
2 #include <cstdlib>
3 #include <ctime>
4 #include <string>
5
6 using namespace std;
7
8
9 int main()
10 {
11 int array_size=0;
12 srand(time(NULL));
13 cout<<"\n\nWhat size of an array would you like?\n";
14 cout<<": ";
15 cin>>array_size;
16 int my_array[array_size];
17 for (int i=0;i<array_size;i++)
18 {
19 my_array[i]=(rand()%100)+1;
20 }
21 for(int i=0;i<array_size;i++)
22 {
23 cout<<"\n"<<my_array[i];
24
25 }
编译时我使用这一行。
g++ -g main.cpp -o a
当我启动调试器时,它使用这个。
gdb a
如有任何帮助,我将不胜感激。 谢谢!
您正在进入标准库源代码。假设您确实拥有源代码,您可以将 gdb 设置为使用 dir
或 set directories
来查找它们。但是大多数人没有他们的 C 标准库的源代码——除非你真的想调试标准库代码本身,否则我建议使用 n
(下一个)命令而不是 s
(步骤)跨过 srand
。
请注意,您收到的错误只是 gdb 找不到 srand
的源文件。它最终仍将单步执行该函数 - 但它需要一些单步执行,并且如果没有源代码来查看它在做什么,它是毫无意义的。