Questions tagged «segmentation-fault»

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




23
Android致命信号11(SIGSEGV)位于0x636f7d89(代码= 1)。如何找到它?
我一直在阅读其他文章,以追踪SIGSEGV在Android应用程序中获取的原因。我计划在我的应用程序中搜索与Canvas使用相关的可能的NullPointers,但我SIGSEGV每次都会使用不同的内存地址。另外我看过code=1和code=2。如果内存地址是0x00000000,那么我就知道它是NullPointer。 我得到的最后一个是code=2: A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2) 关于如何追踪这个的任何建议? 我有一个嫌疑犯,但是我还不愿意尝试它。我的应用程序使用OSMDroid API进行离线映射。OverlayItem类表示地图上的标记/节点。我有一个服务,可通过网络收集数据以填充OverlayItem,然后将其显示在地图上。为了简化设计,我将OverlayItem扩展到我自己的NodeOverlayItem类中,该类包括我在UI Activity和Service中使用的一些附加属性。这给了我关于UI和服务的单点信息。当发生更改时,我使用Intents广播到Activity来刷新UI映射。活动绑定到服务,并且有一个Service方法来获取NodeOverlayItem的列表。我认为这可能是OSMDroid API对OverlayItem的使用,和我的服务同时更新节点信息。(并发问题) 在我撰写本文时,我认为这确实是问题所在。令人头疼的不是将Node和OverlayItem从NodeOverlayItem中分离出来,而是因为Activity需要来自Node的一些数据,而该数据是服务所拥有的。另外,当创建活动(onResume等)时,需要根据活动不在时服务一直在维护的Node数据重新创建OverlayItem对象。例如,您启动应用程序,服务会收集数据,UI会显示它,您转到首页,然后回到应用程序,活动将需要从最新的服务节点数据中提取并重新创建OverlayItem。 我知道这不是一个很好的或明确的问题。就像我所有的SO问题都是利基或晦涩的。如果有人对如何解释这些SIGSEGV错误有任何建议,将不胜感激! 更新 这是在调试会话期间捕获的最新崩溃。我有3个这样的设备用于测试,在我进行开发和测试时,它们并不会全部崩溃。我添加了一些额外内容,以便可以记录GC日志记录。您可以看到该问题可能与内存耗尽无关。 03-03 02:02:38.328: I/CommService(7477): Received packet from: 192.168.1.102 03-03 02:02:38.328: I/CommService(7477): Already processed this packet. It's a re-broadcast from another node, or from myself. It's not a repeat broadcast though. 03-03 02:02:38.406: …

30
命令由于信号失败:分段错误:11
我遇到了错误... 命令由于信号失败:分段错误:11 ...尝试编译我的Swift应用程序时。我正在使用Xcode 6.1,尝试在iOS 8.1上为iPhone 5进行构建。 我的密码 import UIKit class ViewController: UIViewController { @IBOutlet weak var username: UITextField! @IBAction func signIn(sender: AnyObject) { PFUser.logInWithUsernameInBackground(username.text, password:"mypass") { (user: PFUser!, error: NSError!) -> Void in if user != nil { println("Logged In") } else { func myMethod() { var user = PFUser() …


5
大阵列尺寸上的分段错误
以下代码在2Gb机器上运行但在4GB机器上运行时出现分段错误。 int main() { int c[1000000]; cout << "done\n"; return 0; } 阵列的大小仅为4Mb。在c ++中可以使用的数组大小是否有限制?

3
为什么此代码段错误在64位体系结构上却在32位体系结构上能正常工作?
我遇到了以下C难题: 问:为什么以下程序在IA-64上出现段错误,但在IA-32上却可以正常工作? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } 我知道int64位计算机上的大小int可能与指针的大小不同(可能是32位,而指针可能是64位)。但是我不确定这与上面的程序有什么关系。有任何想法吗?

6
修复C ++中的分段错误
我正在为Windows和Unix编写跨平台的C ++程序。在窗口方面,代码将编译并执行没有问题。在Unix方面,它将编译,但是当我尝试运行它时,出现了分段错误。我最初的预感是指针存在问题。 有什么好的方法来查找和修复分段错误?


4
如何在Android上的JNI下捕获SIGSEGV(分段错误)并获得堆栈跟踪?
我正在将一个项目移到新的Android Native Development Kit(即JNI)上,我想抓住SIGSEGV(如果它发生的话(可能还有SIGILL,SIGABRT,SIGFPE)),以便呈现一个不错的崩溃报告对话框,而不是(或之前)当前发生的情况:该进程立即异常死亡,并且操作系统可能会尝试重新启动它。(编辑: JVM / Dalvik VM捕获信号并记录堆栈跟踪和其他有用的信息;我只想向用户提供将这些信息通过电子邮件发送给我的选项。) 情况是:我没有编写大量的C代码,完成了该应用程序中的大部分工作(所有游戏逻辑),尽管在许多其他平台上都经过了充分的测试,但我在Android中完全有可能端口,将其作为垃圾进行处理并在本机代码中导致崩溃,因此我希望当前显示在Android日志中的崩溃转储(本机和Java)(我猜在非Android情况下将是stderr)。我可以随意修改C和Java代码,尽管回调(传入和传出JNI)的数量大约为40,显然,小差异的加分。 我听说过J2SE,libjsig.so中的信号链库,并且如果我可以在Android上安全地安装类似的信号处理程序,那将解决我的问题中的棘手部分,但是我没有看到这样的Android / Dalvik库。

5
如何在Linux中捕获分段错误?
我需要在第三方库清理操作中捕获分段错误。有时会在我的程序退出之前发生这种情况,而我无法解决此问题的真正原因。在Windows编程中,我可以使用__try-__catch做到这一点。是否有跨平台或特定于平台的方法来做到这一点?我在Linux中需要这个,gcc。

7
是什么导致Python分段错误?
我正在用Python实现Kosaraju的强连接组件(SCC)图搜索算法。 该程序可以在较小的数据集上很好地运行,但是当我在超大图形(超过800,000个节点)上运行它时,它会显示“ Segmentation Fault”。 可能是什么原因造成的?谢谢! 附加信息:首先,我在超大型数据集上运行时遇到此错误: "RuntimeError: maximum recursion depth exceeded in cmp" 然后我使用设置重置递归限制 sys.setrecursionlimit(50000) 但是出现了“细分错误” 相信我这不是一个无限循环,它可以在相对较小的数据上正确运行。程序是否可能耗尽了资源?

2
在C中不使用main()编译并运行程序
我正在尝试编译和运行以下没有main()功能的程序C。我已经使用以下命令编译了程序。 gcc -nostartfiles nomain.c 编译器发出警告 /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340 好,没问题 然后,我运行了可执行文件(a.out),两个printf语句都成功打印,然后出现分段错误。 因此,我的问题是,为什么成功执行打印语句后出现分段错误? 我的代码: #include <stdio.h> void nomain() { printf("Hello World...\n"); printf("Successfully run without main...\n"); } 输出: Hello World... Successfully run without main... Segmentation fault (core dumped) 注意: 在这里,-nostartfilesgcc标志可防止编译器在链接时使用标准启动文件

12
为什么这个RMagick调用会产生分段错误?
一个多小时的时间里,我一直在脑海中trying撞,试图弄清楚这里出了什么问题,而且我敢肯定(或者更希望是)我忽略了很明显的事情。我正在使用Ruby 1.9.1,Sinatra 1.0和RMagick 2.13.1。ImageMagick和RMagick已正确安装并正常运行-我已经成功地操作并保存了irb中的图像。 params数组的相关部分(为便于阅读而更改格式): {"admin_user_new_image_file"=> { :filename=>"freddie-on-shetland-pony.png", :type=>"image/png", :name=>"admin_user_new_image_file", :tempfile=>#<File:/var/folders/a7/a7pO5jMcGLCww9XBGRvWfE+++TI/-Tmp-/RackMultipart20100514-20700-o2tkqu-0>, :head=>"Content-Disposition: form-data; name=\"admin_user_new_image_file\"; filename=\"freddie-on-shetland-pony.png\"\r\nContent-Type: image/png\r\n" } } 相关代码: post "/admin/user/:account_name/image/new/" do if params[:admin_user_new_image_file][:tempfile] thumbnail = Magick::Image.read("png:"+params[:admin_user_new_image_file][:tempfile].path).first end end 错误(第229行是以“ thumbnail =”开头的行: config.ru:229: [BUG] Segmentation fault ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10.3.0] -- control frame ---------- c:0042 p:---- s:0196 b:0196 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.