2012-11-01 60 views
0

我正在编译一些我用g ++编写的代码的测试用例,并试图在命令行上用gdb进行调试。代码编译没有错误或警告,但是当我启动我的可执行文件使用gdb我收到以下错误:gdb声明失败

Assertion failed: (g.numPlayers>0 && g.numPlayers<=MAXPLAYERS && cin), function readScenario, file p3t3.cpp, line 141. 

我使用的是完全相同的输入参数使用gdb,因为我的时候,我通常运行编译的程序。有什么理由可以编译没有问题,但在gdb中抛出一个错误?

回答

1

如果您需要在命令行参数传递给你的程序,那么您可能需要如果我在从文件中读取参数使用

$ gdb --args ./program arg1 arg2 

$ gdb ./program 
... 
(gdb) run arg1 arg2 
+0

,将格式仍然如你所描述的那样? – nan

+0

你在做什么?编辑:你的意思是你重定向标准输入?如果是这样,我相信你必须使用'运行arg1 arg2

+0

我有一个名为p3t3的可执行文件。当我用gdb打开它并从文件“example.in”给出它的参数时(例如'(gdb)run example.in'),我得到断言失败,即使代码在gdb之外编译和正确运行。 – nan