Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;srand在我运行程序时工作,但不';我不在gdb工作_C++_Gdb_Srand - Fatal编程技术网

C++ c++;srand在我运行程序时工作,但不';我不在gdb工作

C++ c++;srand在我运行程序时工作,但不';我不在gdb工作,c++,gdb,srand,C++,Gdb,Srand,c++srand在我运行程序时工作,但在gdb中不工作。 我正在使用Ubuntu登录终端。 学习C++。 如果我只是执行它,我的程序就会按预期运行。但我真的需要开始学习使用调试器。当我单步执行程序时,对srand的调用会出现以下错误 12 srand(time(NULL)); (gdb) __srandom (x=1451559304) at random.c:210 210 random.c: No such file or directory. (gdb) 211 in ran

c++srand在我运行程序时工作,但在gdb中不工作。 我正在使用Ubuntu登录终端。 学习C++。 如果我只是执行它,我的程序就会按预期运行。但我真的需要开始学习使用调试器。当我单步执行程序时,对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         }
当我启动调试器时,它会使用这个

gdb a
我将感谢任何帮助。
谢谢

您正在进入标准库源。假设您确实有源代码,您可以设置gdb,使用
dir
set directories
查找它们。但是大多数人没有他们的C标准库的源代码——除非你真的试图调试标准库代码本身,否则我建议使用
n
(next)命令而不是
s
(step)跳过
srand


请注意,您得到的错误只是gdb找不到
srand
的源文件。它最终还是会逐步完成函数-但这需要一些步骤,没有源代码来查看它在做什么,这是毫无意义的。

旁注:对于动态大小的数组,使用
std::vector
。似乎您已经进入了
srand
函数,您不应该这样做。越过它。了解
step
next
GDB命令之间的区别。要详细说明错误,当您进入
srand
函数时,调试器将希望加载定义了
srand
函数的源文件,因为您没有它,您将得到一个找不到的错误。对于库文件或系统文件,这通常是一个可以忽略的错误。太好了!谢谢!
gdb a