当一个对象试图访问它的某个属性时,程序是否可能发送Segfault
Is it possible that a program sends a Segfault whenever an object tries to access one of its attributes?
我有一个具有bool
属性的类,名为global
。
当我从外部调用它的一个方法时,出现了分段错误。
基本上,我调用这个方法。这个方法在内部调用另一个方法,该方法调用另一种方法,依此类推(这是因为每个方法都做一些稍微复杂的事情)。
在方法调用链的末端,有一个方法检查属性global
,并根据其内容执行不同的操作。
使用gdb,我发现在最后一种方法中,分割错误是在精确的if (global) {
线上产生的。我尝试在方法调用链中将此条件检查移到更高的位置(以便在方法链中继续深入之前检查条件),但结果没有改变(换句话说,无论它放在哪里,if (global) {
总是会导致分段错误`)。
检查属性global
是否可能导致分段故障?这意味着什么?是什么原因造成的?
我正在g++ -std=c++11 -Wall -Wextra -pedantic -g
中编译usin。
分段错误(SIGSEGV)意味着您的程序试图访问其地址空间之外的内存。这通常是由于取消引用未初始化的指针或指向生存期已结束的对象的指针、读取堆栈末尾或类似情况而导致的。
相关文章:
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 标准是否严格定义了该程序应该如何编译?
- 与 stdio 同步是否使程序 I/O 非交互式?
- 用于检查数字是否有数字或可被该数字的值整除的程序
- 是否可以依赖函数范围的静态变量来执行程序关闭期间调用的方法?
- 为什么程序员同时使用 std::bad_alloc 和 std::exception.是否 std::例外 仅是不够的
- 用于检查值是否为其任何参数的帮助程序函数
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 在 C++20 中是否不再允许在 std 中对程序定义类型的函数模板进行专用化?
- 是否可以编译 Gtk+ 应用程序以同时在 Gtk 2 和 3 上运行
- 如何使用C++确定应用程序是否已在窗口中启动?
- 使程序检查当前日期是否=预期日期
- 是否可以从C++程序中调用 ACPI 方法?
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 在程序变得低效之前,允许多少新的[]和删除[]分配是否有限制?
- 如何查询以确定我的 MacOS/X 应用程序是否处于应用程序午睡模式?
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- GTK C++:找不到信号处理程序 您是否使用 -rdynamic 进行了编译?
- 是否可以使用非常量指针调用非常量函数,以及当两个unique_ptrs指向同一个对象时程序的行为方式?
- 这是否C++程序调用未定义的行为