首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试c++:../nptl/sysdeps/unix/sysv/linux/rise.c:没有这样的文件或目录

调试c++:../nptl/sysdeps/unix/sysv/linux/rise.c:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2012-10-31 06:58:26
回答 3查看 47.4K关注 0票数 21

我使用gdb来调试C++程序。排在队伍里

代码语言:javascript
复制
assert(prevId ==  GetTagIdFromState(maxState));
  • 参数prevId值为0
  • 方法:GetTagIdFromState(maxState) returns 50

调试时,我会得到以下错误。

代码语言:javascript
复制
Assertion `prevId == GetTagIdFromState(maxState)' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff6ecbba5 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
      in ../nptl/sysdeps/unix/sysv/linux/raise.c
EN

回答 3

Stack Overflow用户

发布于 2012-10-31 07:00:31

您的应用程序按预期工作。断言失败(因为传递给它的值不相等,assert宏接收0),因此程序被中止。这就是断言的工作方式:

如果未定义NDEBUG,则断言检查其参数(必须具有标量类型)是否等于零。如果是这样的话,断言将输出标准错误输出的特定于实现的诊断信息,并调用std::

强调我的。

有关更多信息,请查看此断言引用

票数 10
EN

Stack Overflow用户

发布于 2016-05-06 05:08:08

我只是在尝试调试Raspberry Pi上的程序时遇到了这个错误。程序使用GPIO的方式恰好要求程序以root身份运行。例如,我以如下方式运行我编写的程序:

代码语言:javascript
复制
sudo ./foo

但是,在启动调试器时,我忘记了这一点,并尝试了

代码语言:javascript
复制
gdb foo

我得到了你似乎遇到的错误:

代码语言:javascript
复制
Program received signal SIGABRT, Aborted.
0x76cd0f70 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.

当我用sudo运行它的时候,它工作得很好。

代码语言:javascript
复制
sudo gdb foo

希望这对同舟共济的人有帮助。

票数 2
EN

Stack Overflow用户

发布于 2012-10-31 07:10:27

这将使您了解有关使用断言函数的最新情况。

代码语言:javascript
复制
void assert (int expression);

如果此宏的参数表达式与函数形式比较等于零(即表达式为false),则计算断言,将消息写入标准错误设备,并调用abort,从而终止程序的执行。

所显示的消息的具体内容取决于编译器中的特定实现,但它应该包括:断言失败的表达式、源文件的名称以及它发生的行号。一种常见的表达式格式是:

断言失败:表达式、文件文件名、行号--这个宏是禁用的,如果此时包含的是一个名为NDEBUG的宏。这允许编码器在调试程序时将许多断言调用包含在源代码中,然后通过简单地包括如下一行来禁用所有这些调用用于生产版本:

代码语言:javascript
复制
#define NDEBUG at the beginning of its code, before the inclusion of assert.h.

因此,此宏设计用于捕获编程错误,而不是用户或正在运行的错误,因为通常在程序退出调试阶段后才禁用它。来自:C++参考文献

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13152775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档