segmentation-fault 相关问题

访问不属于您的进程的内存时会发生分段错误。使用此标记以及指示语言的标记和指示操作系统的标记。分段错误通常是使用指针变量(通常包含无效地址)或缓冲区溢出的解除引用操作的结果。无效指针值的根本原因可能是远离产生分段错误的位置。

‘pop rbp’指令出现分段错误

以下汇编代码会导致在 pop rbp 指令处从主函数中退出分段错误。这段代码是由我正在编写的编译器生成的,所以不要介意多余的

回答 1 投票 0

下面代码出现段错误,错误在哪里?

代码: #包括 #包括 #包括 结构xsk_ring_stats { 无符号长 rx_frags; 无符号长 rx_npkts; 无符号长 tx_frags;

回答 1 投票 0

pop rbp 导致分段错误

以下汇编代码会导致在pop rbp指令处从主函数中退出分段错误(该代码是由我正在编写的编译器生成的,所以不要介意多余的

回答 1 投票 0

捕获崩溃子进程的“分段错误”消息:调用communicate()后没有输出和错误

我在使用子进程模块获取崩溃程序的输出时遇到问题。 我正在使用 python2.7 和子进程来调用带有奇怪参数的程序以获得一些段错误 在...

回答 3 投票 0

进行指针操作时出现分段错误(核心转储)

尝试运行程序时出现分段错误(核心转储)。只是一些简单的指针操作,但我无法弄清楚问题所在。 int get_address_value(int* ptr) { 返回*pt...

回答 2 投票 0

仅在启用 -O2 优化标志时出现段错误

我在一个较大的 C++ 应用程序中遇到了一个问题,该问题仅在启用优化 -O、-O2 或 -O3 时才会发生。我设法使用以下代码片段重现该问题: #包括 我在较大的 C++ 应用程序中遇到了一个问题,该问题仅在启用优化时才会发生 -O、-O2 或 -O3。我设法使用以下代码片段重现了该问题: #include <string> #include <memory> #include <fstream> #include <iomanip> #include <iostream> class PriceFeedStream { private: std::string trades_file_name = "example.csv"; std::ofstream output_trades_file; public: PriceFeedStream(const std::string& assetName){ std::cout << "trying to initialize " << std::endl; output_trades_file.open(trades_file_name, std::ios::app); if (!output_trades_file) { std::cerr << "failed to open file: " << trades_file_name << std::endl; return; } output_trades_file << assetName << std::endl; } }; int main(){ std::string asset = "ABC3"; std::cout << "initializing feed map with asset " << asset << std::endl; std::unique_ptr<PriceFeedStream> feed = std::make_unique<PriceFeedStream>(asset); std::cout << "done" << std::endl; return 0; } 应用程序在Windows上编译,使用编译器版本: g++.exe (MinGW-W64 x86_64-ucrt-mcf-seh, built by Brecht Sanders) 13.2.0 在没有任何优化标志的情况下编译时: g++ -g -Wall -Werror -Wextra -std=c++20 main.cc -o main 运行可执行文件的输出是: initializing feed map with asset ABC3 trying to initialize example.csv done 启用优化标志进行编译: g++ -g -Wall -Werror -Wextra -std=c++20 -O2 main.cc -o main 运行可执行文件时产生以下结果: initializing feed map with asset ABC3 Segmentation fault 我的猜测是代码可能有一些未定义的行为,导致在没有优化标志的情况下不会出现此段错误。我想了解这是什么类型的问题,以便在未来的情况下缓解。 这个问题确实与 @SamVarshavchik 提到的编译器的选择有关,不确定根本原因。我在同一台 Windows 机器上安装了 Clang/LLVM。 clang --version (built by Brecht Sanders) clang version 16.0.6 Target: x86_64-w64-windows-gnu Thread model: posix InstalledDir: C:/mingw64/bin 编译代码后 clang++ -g -Wall -Werror -Wextra -std=c++20 -O2 main.cc -o main 应用程序按预期执行: initializing feed with asset ABC3 trying to initialize done

回答 1 投票 0

分析堆栈损坏的核心转储

我目前正在尝试调试我的 C++ 应用程序中的核心。客户报告了带有以下线程列表的 SEGFAULT 核心: ...其他线程位于此处 3 线程 0xf73a2b70 (LWP 2120) 0x006fa43...

回答 3 投票 0

核心转储不起作用

当我运行带有段错误的程序时,我收到一条错误消息 Segmentation failure: 11。出于某种原因,我没有收到(核心转储)消息。我尝试运行 shell 命令 ulimit -c unlimited,...

回答 4 投票 0

程序收到信号SIGSEGV,分段错误 - 没有这样的文件或目录[重复]

我正在运行 gdb 来调试出现分段错误的程序。当我构建我的应用程序并运行时 gdb ./应用程序 我得到以下输出: 程序收到信号 SIGSEGV,分段错误。 __strcp...

回答 1 投票 0

Raspberry Pi 400 与 BME688 用于 bme ai studio 数据收集

我正在使用带有博世 BME688 传感器的 Raspberry Pi 400 来收集数据以传递到 BME Ai 工作室进行训练。我使用 pi3g github 库来收集数据。运行示例时一切......

回答 1 投票 0

在 SIGSEGV 之后映射未分配的内存

通过信号处理程序捕获 SIGSEGV 后,我尝试使用 mmap 来映射地址。我不明白为什么 mmap 因无法分配内存错误而失败。 这是 C 代码。我正在努力...

回答 1 投票 0

AddressSanitizer 随机抛出 SIGSEGV,没有任何解释

项目 我目前正在开发一个 C++ 游戏项目。 我使用 -g3 -std=c++2a -Wall ... -fsanitize=address -fsanitize=leak 编译每个源文件以检查泄漏和段错误 该...

回答 1 投票 0

为什么我不能将 int 添加到内存地址来寻址任何数组?

我试图用偏移量为 2 的第二个字符串覆盖第一个字符串的一部分。 这是我的第二次尝试,有效: #包括 #包括 int main() { 茶...

回答 2 投票 0

如何将数组中的单个元素复制到特定位置的向量?

我一直试图让它工作一段时间,但错误要么太模糊,要么是不相关的东西。 我对编码很陌生,所以更复杂的解决方案对我来说可能太多了。 int main() { ...

回答 1 投票 0

结构 c 的分段错误

#include“stdio.h” 类型定义结构 { 字符名称[50]; 货币; 字符 IBAN[50]; 字符密码[20]; 字符电子邮件[30]; }帐户; 无效创建帐户(帐户* ptr) { 公关...

回答 2 投票 0

C语言的Aho-Corasick算法

我编写了一个带有转换表的 Aho-Corasick 算法,该算法在文本中搜索一组单词并使用 malloc() 显示出现次数,但我遇到了这个 e...

回答 1 投票 0

增加 ptr 以迭代数组时,nullptr 检查出现分段错误

以下代码在编译和运行时会出现分段错误。我正在 MacBook 上尝试《C++ 之旅》第 12 页上的示例。 编译命令- clang++ -Wall -std=c++11 -o 替换...

回答 1 投票 0

设置LD_PRELOAD路径可以避免进程出现分段错误

我的应用程序 obuspa 在执行 libuci.so 链接库的标准 OpenWRT 库调用 uci_lookup_ptr 时崩溃。加载程序正在链接库列表中显示该库...

回答 2 投票 0

为什么将循环中的最后一个元素添加到向量段错误?

我有下面的代码,我将标准输入解析为存储在向量中的对象。工作正常,直到到达 chain->jobs.push_back(job);出现段错误的迭代之一。我已经推断出它

回答 2 投票 0

尝试读取大数字时出现分段错误(核心转储)

尝试读取大数字并使用 isalpha 检查它们,并在非常大的数字中出现此错误(在 c 中) 例如,当我尝试使用 555555 时,它可以工作 但是当我尝试使用 4003600000000014

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.