问题标签 [segmentation-fault]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
1660 浏览

c++ - C ++中字符串分配的分段错误

看一下这个示例函数:

这里的一切都很好,但是当我运行这样的东西时:

我在第一次分配时遇到分段错误。它可能与为此结构分配的固定内存块有关。如何让它正常工作?

0 投票
9 回答
1858 浏览

c++ - 导致分段错误的奇怪整数值

我有一个函数 find_nodes() 里面有一个循环:

我在这个作业中遇到了分段错误:

我检查了 numb_found 值,几次迭代都可以,之后它而不是几个+1,它等于 -1207604106

是什么原因造成的?

0 投票
7 回答
33602 浏览

c - 总线错误与分段错误

总线错误和分段错误之间的区别?是否会发生程序第一次出现段错误并停止而第二次出现总线错误并退出的情况?

0 投票
2 回答
1305 浏览

c# - C# 单声道 p/调用失败

最近我尝试在单声道(.NET for Linux 平台)中使用 p/invoke 编写一个简单的 OpenGL 应用程序,以了解它在 C# 上的工作原理(我已经在 windows 上成功完成了)。我听说过 tao 框架,但我不想要一个简单的“hello world”之类的程序。

我刚开始就卡住了。我 p/invoked 了一些 GL 函数以查看它们是否有效。我立即调用了 glClearColor 和 glClear 来查看它是否设置了 glGetError (由于那时 opengl 还没有被初始化)。

它只是崩溃并转储以下堆栈跟踪和其他调试信息,而不是调用该函数。不会抛出异常。

堆栈跟踪:

glClearColor 的签名是:

C规范是:

GLclampf 是浮动的,因为我在标题中看到了它的声明。

0 投票
5 回答
7553 浏览

c++ - 使用 -pthreads 为 Openwrt Linux 编译 C++ - 获取分段错误

我对 C++ 编程很陌生,我正在使用 pthreads。我正在为 OpenWRT 交叉编译我的代码,但由于某种原因,当我在我的板上运行程序时出现分段错误,但它在我的 PC 上运行良好。我怀疑错误发生在编译的链接阶段,因为我尝试了一个小的 C 程序并且效果很好。此外,如果我将文件名更改为 .cpp 并使用 g++ 编译它也可以工作。

eclipse编译器的输出:

编辑:删除旧代码并放入一个新的更简单的示例。如果我将其编译为 C 程序,则此代码会运行,但如果我将其编译为 C++ 程序则不会。我在板上运行 2.6.26.3 内核。

0 投票
10 回答
20418 浏览

c++ - C++ std::vector 的指针删除和分段错误

我有一个指向类的指针向量。我需要调用它们的析构函数并释放它们的内存。由于它们是指针向量 vector.clear() 不能完成这项工作。所以我继续手动进行,如下所示:

那里的 printf 是因为我有一个会说话的析构函数来查看分段错误发生在哪个染色体中。当调用 clearPool() 并说我们的大小为 100 时,它可以在 0 到 100 之间的任何染色体中给出分段错误。

我不知道为什么会发生这种情况,也没有办法真正找到问题所在,因为在使用断点进行调试时,我所看到的只是它发生在随机染色体上。

我正在使用代码块 IDE 和 gdb 调试器。发生分段错误时的堆栈跟踪有 4 个内存地址和一个函数wsncpy()

0 投票
13 回答
6027 浏览

c++ - 为什么我会随机收到段错误?

这对我来说很奇怪,但是当我启动我的程序时,我遇到了一个意想不到的随机分段错误。有时它有效,有时它崩溃.. Dev-C++ 的调试器将我指向文件的一行:stl_construct.h

顺便说一句,我正在广泛使用 STL。我应该怎么做才能检测到段错误的起源?有什么工具可以提供帮助吗?可能导致这样的随机崩溃的原因是什么。

编辑:

我的程序大约有 5000 行代码。我不知道我必须显示什么代码才能获得帮助,因为我不知道问题的根源,我从调试器得到的只是它与 STL 有关。

编辑:

我搬到了Code::Blocks现在,这里是调用堆栈:

更多精度:

1/ 这是一个多线程应用程序。2/ 方法:get_vehicles_distances(); 返回地图。3/ 地图可能在 IsMergeInstruction() 调用时尚未初始化;

编辑:

显然导致段错误的行是:

Vehicles_distances_ 是地图。此行是方法的一部分: VehicleManager::MoveAllVehicles();

那有什么问题?

编辑:

我尝试使用 map::clear(); 作为 map::erase() 的替代品;但同样的问题发生了!

编辑:

我想我明白了...一个线程正试图在清除车辆时使用车辆距离..(?)

编辑:

问题解决了!所以它来自 map::erase(); 正如预期的那样。我通过创建另一个映射变量来绕过该问题,其中该对<key, value>被反转,因此我可以更新地图。(因为我需要的关键是距离,并且距离不是唯一的,因为它每次都在变化,但 id_vehicle 是唯一的!)。最后我只是拿了那张地图,<key, value>再次反转并将其转移到可以在每个循环中重新声明的原始地图......

感谢大家 !

0 投票
3 回答
1545 浏览

c++ - glfwSleep() 如何导致段错误?

在我的多线程应用程序中,我使用了 sleep() 函数(来自 GLFW 库的函数):

它显然导致我的应用程序出现段错误,因为我的调用堆栈显示:

glfwSleep()用于线程内部。那很危险吗?为什么我的程序会因此而出现段错误?

编辑:

当 的参数glfwSleep()< 0.02 (secs) 时,它不会出现段错误!

编辑2:

来自 GLFW 的官方文档:

在您习惯之前编写线程应用程序可能会非常尴尬,但有一些非常容易遵循的关键规则:

  • 始终确保对线程之间共享的数据的独占访问!
  • 确保线程正确同步!
  • 从不忙等待!

我想我得到了答案..现在必须找到替代方案..

谢谢!

0 投票
2 回答
2023 浏览

c - C 内联汇编中的 RDTSC 导致分段错误!

感谢你们的一些帮助,我的小内联汇编程序几乎就在我想要的地方。但是,现在 rdtsc 命令似乎发生了一些非常奇怪的事情;基本上,我在调用它时遇到了分段错误。

省略 rdtsc,然后程序编译并执行它应该执行的操作。但是添加 rdtsc 行会导致分段错误。我在双核机器上运行这些东西并用于编译:gcc -masm=intel test.c

帮助将不胜感激!

0 投票
7 回答
2619 浏览

ruby - hpricot中的分段错误

我正在使用 hpricot 来阅读 HTML。我遇到了一个分段错误错误,我用谷歌搜索,有人说升级到最新版本的 Ruby。我正在使用 rails 2.3.2 和 ruby​​ 1.8.7。如何解决此错误?