簡體   English   中英

我運行程序時c ++ srand有效,但在gdb中不起作用

[英]c++ srand works when I run the program but doesn't work in gdb

當我運行程序時,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         }

編譯時我使用這一行。

g++ -g main.cpp -o a

當我啟動調試器時,使用它。

gdb a

我將不勝感激任何幫助。 謝謝!

您將進入標准庫資源。 假設您確實擁有源,則可以設置gdb以使用dirset directories查找它們。 但是大多數人沒有C標准庫的源代碼-除非您實際上是在調試標准庫代碼本身,否則我建議使用n (下一個)命令而不是s (步驟)來逐步覆蓋srand

請注意,您得到的錯誤僅僅是gdb找不到srand的源文件。 它最終仍將逐步執行該功能-但是將需要一些步驟,並且如果沒有源代碼來查看其功能,這是毫無意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM