gpt4 book ai didi

objective-c - 分布式对象崩溃

转载 作者:行者123 更新时间:2023-12-03 16:47:33 26 4
gpt4 key购买 nike

我正在根据给定的内容使用分布式对象在两个进程之间进行通信。 here

每当我尝试在短时间内发送许多消息时,我都会观察到以下崩溃。它仅发生在 MAC OS 10.5 上。它似乎在 10.6/10.7 上运行良好

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000001
Crashed Thread: 26




Thread 26 Crashed:
0 libSystem.B.dylib 0x9453d2ee ConnectionResponse + 100
1 libSystem.B.dylib 0x9453d114 DNSServiceProcessResult + 754
2 com.apple.CFNetwork 0x929566b1 _SocketCallBack_NetService(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 43
3 com.apple.CoreFoundation 0x92a5a6f0 __CFSocketDoCallback + 640
4 com.apple.CoreFoundation 0x92a5bd35 __CFSocketPerformV0 + 133
5 com.apple.CoreFoundation 0x92a513c5 CFRunLoopRunSpecific + 3141
6 com.apple.CoreFoundation 0x92a51aa8 CFRunLoopRunInMode + 88
7 com.apple.Foundation 0x9156c869 -[NSSocketPortNameServer portForName:host:nameServerPortNumber:] + 457
8 com.apple.Foundation 0x9156c4c8 -[NSSocketPortNameServer portForName:host:] + 56
9 com.apple.Foundation 0x91446a68 +[NSConnection connectionWithRegisteredName:host:usingNameServer:] + 56
10 ...yyyyyyyyyy.xxxxxxxx 0x00110bbe -[MessageSendingModule sendMessageInternal:] + 617

这是否是由于同时向 mDNSresponder 发出许多请求而导致的。该方法适用于较少数量的消息。有人可以帮忙吗???

最佳答案

考虑使用 this example 重新编写代码这是我在 2016 年创建的。也许这可以为您提供一些稳定性。另外,您早在 2012 年就发布了此内容。OSX 10.5 已经相当老了——我正在编写的大多数 OSX 应用程序现在只支持 OSX 10.8。同时,关于崩溃,我最近了解到,如果您使用 C API 并且没有正确分配内存,那么奇怪的东西可能会出现在代码中的错误位置(用词不当)。例如,如果您使用 sprintf 等函数和其他 *f C 函数来处理 char 的内容。最近,我使用 char *s; 而不是 char s[1000];,我的应用程序在 IPC 机制中崩溃了,这让我大吃一惊!我在线程消息上遇到错误访问。当我修复 char 声明时,我的 IPC 突然开始正常工作,没有崩溃。去算算吧!

如果这不能解决您的问题,那么您可能会看到套接字被您所建立的连接数量淹没。为此,您可能需要重新思考如何构建解决方案,并找到一种减少连接频率的更好策略。

关于objective-c - 分布式对象崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com