segmentation-fault相关内容
我们正在尝试测试学生代码,并且为了自动化该过程,我们想检测学生的代码是否溢出堆栈. 我使用 libsigsegv 库及其相应的 stackoverflow_install_handler 取得了一些成功.它运行得非常好,直到学生的代码两次爆栈. 例如,下面是一些示例输出: [# ~]$ ledit ./interpreter->(使用解决方案)->(乐趣 1 2)***检测到堆栈溢出
..
这是我的 Boost.Asio 项目基于示例的 SSCCE.我花了大约一个小时来跟踪这个错误: #include #include #include 类连接{上市:连接(boost::asio::io_service& io_service):socket(io_service){}私人的
..
我正在开发一个无锁共享变量类,我希望能够生成一个 SIGSEGV 错误,以查看我的实现是否按计划工作.我尝试创建一个修改指针并读取它 100 次的函数.然后我在两个线程中调用这个函数并让线程在我的程序中无限运行.这不会产生我想要的错误.我该怎么做呢? 编辑我根本不处理段错误,但是如果我删除锁,它们会在我的程序中生成.我想使用无锁设计,因此我创建了一个使用 CAS 保持无锁的共享变量类.有没有
..
我有一个在 AWS 上运行的 php 系统和一个使用 shh2 和 sftp 在外部服务器上上传 xlsx 文件的类.这段代码运行良好,直到上次升级 aws 包 openssh-clients-6.6.1p1-31.62 和 openssh-server-6.6.1p1-31.62 到此时我有一个 fopen 期间的strong>segfault.fopen 在外部服务器上创建一个文件.代码如下:
..
我在 return 语句之前打印我正在返回的值,并告诉我的代码在函数调用之后打印返回的值.但是,在我的第一个 print 语句之后和第二个之前,我得到了一个分段错误(值得注意的是,这总是在第三次调用函数时发生;从来没有第一次或第二次,从来没有第四次或更晚).我尝试打印出我正在处理的所有数据,以查看我的其余代码是否在做一些它可能不应该做的事情,但到目前为止我的数据看起来还不错.函数如下: int
..
我有一个程序故意在一个线程上出现段错误,但我遇到另一个线程出现段错误的问题,我想用 GDB 捕捉它,我发现我可以: 句柄 SIGSEGV nostop noprint 但我只想在故意这样做的线程上这样做.. 可能吗? 我会解释:我有 2 个线程,一个线程是 segfaulting(并且恢复(mprotect 只读然后释放内存)),工作正常,另一个线程做其他事情,但遗憾的是,有一个错误,它
..
我今天早上尝试运行 PHPUnit,但它产生了 Segmentation Fault 11 错误(使用命令 phpunit unit/ - 如果我使用 Selenium 在我的功能测试中运行 PHPUnit,那么一切正常,它只是受影响的单元测试,我在这里尝试了其他线程中的选项,但没有解决问题,我尝试在本地重新安装 MAMP 并通过 PEAR 重新安装 PHPUnit.我还尝试在命令上切换 PHP
..
我正忙于一个项目,我必须在 bash 或 ssh 中自动化一些进程,所以我决定使用 libexpect.so 库.如果您不知道 libexpect 是什么,它提供了一个我可以在 c++ 程序中使用的 expect 扩展,而 expect 只是一个程序,您可以在其中为 ssh 之类的东西运行自动化脚本.因此,我可以执行一个脚本,该脚本尝试在某处进行 ssh ......当通过期望找到密码提示时,我可
..
我遇到了一些难以追踪的 SIGBUS (7) 和 SIGSEGV (11) 崩溃问题. 似乎导致崩溃的线程主要用于加载要显示的图像,这是有道理的,因为日志表明 SkJPEGImageDecoder 出现故障. 我根据此 Bitmaps 重新使用内存"noreferrer">指南 会不会跟这个有关? LogCat 输出: 05-20 13:46:09.775:A/libc(
..
我有一个程序,我使用 cout 来发出调试信息.代码在静态全局变量的初始化中执行,即在程序执行的早期.当我使用自己的构建脚本构建程序时,它在第一次使用 cout 时出现段错误(只有一个字符串文字被转移到 cout,所以它不能是值).我使用 valgrind 检查早期对无效位置的写入,但没有(也没有可能生成这些写入的代码,我在输出之前没有做太多).当我将源代码复制到 Eclipse 项目并让 Ecl
..
C 中退出代码 11 的一般含义是什么?我环顾四周,找不到明确的答案,所以我想我会在这里问.当我尝试将元素添加到向量时,它就会出现. 解决方案 您没有找到明确的答案,因为没有.由程序的作者决定他们希望使用哪些退出代码.标准 C 只说 exit(0) 或 exit(EXIT_SUCCESS) 表示程序成功,而 exit(EXIT_FAILURE) 表示某种错误.(从 main 返回一个值等同
..
我已经阅读了很多关于虚拟地址和分页的信息.让我先告诉大家我的理解.当一个进程想要执行某事时,它会尝试将数据从硬盘加载到内存中.为此,它使用虚拟地址.所以我们的 MMU 验证虚拟地址查找 TLB 以找到相应的物理页面,如果它没有找到它会查找 Inverted Page Table,如果它没有找到那里的条目,最后它会查找页表它会产生页面错误,并且所有页面交换都已完成,并且所有表都将被更新.当我阅读时,
..
我正在尝试使用 G++ 编译一些 C++ 代码.它似乎在其他编译器中工作正常,但无论出于何种原因,G++ 都不会产生工作输出. 披露:这是家庭作业的一部分,但我觉得这更像是一个编译器问题,因为它适用于其他编译器. 这是造成严重破坏的片段: sett1,t2; 这很奇怪,因为下面的代码可以正常工作: set*t1 = 新集合();设置*t2 = 新集合
..
在理解二进制文件(虚拟内存布局、执行等)的过程中,我编写了一个 C 代码,它声明了一个包含可执行代码字节的全局字符串,然后我通过在 main() 中声明一个指针 (PTR),使用一个简单的技巧将 main() 函数的返回地址覆盖到该可执行代码这是在堆栈上保留的本地内存区域 2 WORDS 远离 main() 的返回地址,所以我所做的就是将返回地址的地址分配给该指针 (PTR=(int*)&PTR+
..
我正在尝试遵循有关编译器实现的 LLVM 教程,但是当我尝试发出目标代码时,我的代码出现了段错误. 这是一个尝试编译函数 func 的最小示例.为了简单起见,func 是一个什么都不做的函数. #include #include #include #include
..
我最近迁移到了一台新笔记本电脑 - HP dv6119tx(Intel Core i5,4 GB RAM).它安装了 Windows 7 Home Premium 64 位. 我正在尝试在 C++(Dev C++)中创建一个长度为 10^6 的 int 类型的数组,我曾经在我的最后一台笔记本电脑(32 位 Windows 7 Ultimate/UbuntuLinux,2GB RAM)和我编写
..
我在一次采访中被问到如何使用 GDB 调试 C 程序中的分段错误. 我告诉他们我们可以使用 -g 选项编译我们的程序,以便将调试信息添加到二进制文件并可以读取核心转储文件,但是面试官告诉我他是否有 3 到 4 个文件一起编译,但其中一个导致分段错误,那么我们如何在 GDB 中调试? 解决方案 $ gcc -ggdb s1.c s2.c s3.c -o myprog$ gdb mypr
..
我正在测试旨在检测子进程何时出现段错误的代码.当这段代码并不总是段错误时,想象一下我的惊讶: #include int main() {char *p = (char *)(unsigned long)0;putchar(*p);返回0;} 我在 Debian Linux 2.6.26 内核下运行;我的 shell 是来自 Debian ksh 包的 AT&T ksh93,版
..
有人可以解释为什么下面的排序会导致段错误吗?这是 g++(指针排序向量)的已知错误吗?我正在使用 g++ 4.5.2 进行编译. #include #include #include 使用命名空间标准;typedef 向量一个;bool face_cmp(const A *x, const A *y) {返回 x != y;}int main(int
..
我正在构建一个包含许多节点的图形,大约 3000 个.我编写了一个简单的 python 程序来使用 graphviz 来解决这个问题,但是它给了我分段错误,我不知道为什么,如果图形太大或如果我错过了什么. 代码是: #!/usr/bin/env python# 导入graphviz导入系统sys.path.append('..')sys.path.append('/usr/lib/grap
..