草庐IT

EXC_GUARD

全部标签

c++ - 在额外范围内包含 std::lock_guard

将std::lock_guard放在额外的范围内以使锁定期尽可能短是否有意义?伪代码://allusedvariablesbesidethelock_guardarecreatedandinitializedsomewhereelse...//dosomething{//opennewscopestd::lock_guardlock(mut);shared_var=newValue;}//closethescope...//dosomeotherstuff(thatmighttakelonger)除了锁定时间短,还有其他优势吗?可能有什么负面影响? 最佳答案

c++ - 是否有 std::lock_guard<std::mutex> lock(m) 的简写?

正是问题所述。在C++中,理想情况下是11,但也对14及更高版本感到好奇,是否有以下简写语法:std::mutexsomeMutex;std::lock_guardlg(someMutex);如果我想更改为std::recursive_mutex,最好是推断互斥锁的类型以避免重构.换句话说,一种方法:std::mutexsomeMutex;std::lock_guardlg(someMutex);或者autolg=make_lock_guard(someMutex);对于现代C++的所有类型推断能力,输入std::lock_guard似乎是非常多余的。每次我想做一个。

c++ - 我还应该使用#include guard 和#pragma 一次吗?

http://en.wikipedia.org/wiki/Pragma_once当所有这些编译器都支持#pragmaonce时,我还应该使用包含防护吗?很多关于堆栈溢出的响应都说要同时使用两者以实现兼容性,但我不确定这是否仍然正确。现在有哪些编译器不支持#pragmaonce?我不确定这两种方法在被广泛采用之前是否只是一个建议,或者是否仍有充分的理由同时使用这两种方法。仅使用#pragmaonce会导致问题的任何示例? 最佳答案 这取决于您的程序的可移植性。只要您编写的程序应该与您知道肯定支持#pramaonce的编译器一起工作,只

c++ - boost::unique_lock 与 boost::lock_guard

我不太了解这两个锁类之间的区别。在boost文档中说,boost::unique_lock不会自动实现锁定。这是否意味着unique_lock和lock_guard的主要区别在于unique_lock我们必须显式调用lock()功能? 最佳答案 首先回答您的问题。不,您不需要在unique_lock上调用lock。见下文:unique_lock只是一个具有更多功能的锁类。在大多数情况下,lock_guard会做你想做的,并且足够了。unique_lock为您提供更多功能。例如,如果您需要超时或者如果您想将锁定推迟到对象构造之后的某个

c++ - std::lock_guard 还是 std::scoped_lock?

C++17引入了一个名为std::scoped_lock的新锁类。.从文档来看,它看起来类似于已经存在的std::lock_guard类。有什么区别,我应该什么时候使用它? 最佳答案 scoped_lock是lock_guard的严格高级版本,它一次锁定任意数量的互斥锁(使用与std相同的死锁避免算法::lock)。在新代码中,您应该只使用scoped_lock。lock_guard仍然存在的唯一原因是为了兼容性。它不能被删除,因为它在当前代码中使用。此外,改变它的定义(从一元到可变)被证明是不可取的,因为这也是一个可观察的,因此是

c++ - 异常代码 "EXC_I386_GPFLT"是什么意思?

异常代码EXC_I386_GPFLT是什么意思?它的含义是否因情况而异?在这种情况下,我指的是异常类型EXC_BAD_ACCESS和异常代码EXC_I386_GPFLT程序是在Xcode5.0.1开发的,处理的是BLAS库的cblas_zgemm()。(嗯,我想没关系……)非常感谢! 最佳答案 EXC_I386_GPFLT肯定是指“一般保护错误”,这是x86告诉您“您做了不允许做的事情”的方式。这通常并不意味着您访问超出内存范围,但可能是您的代码超出范围并导致以某种方式使用错误的代码/数据,从而导致某种保护违规。不幸的是,如果没有更

ios - dispatch_semaphore_dispose 上的 EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

我在dispatch_semaphore_dispose上收到EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)但我真的不知道如何追查其根本原因。我的代码使用了dispatch_async、dispatch_group_enter等等。更新:崩溃的原因是由于webserviceCall(见下面的代码)从不调用onCompletion并且当代码再次运行时,我收到错误EXC_BAD_INSTRUCTION。我证实确实如此,但不知道为什么或如何防止这种情况。代码:dispatch_queue_tqueue=dispatch_get_glo

ios - 将谷歌地图添加为 subview 会使 iOS 应用程序因 exc_bad 崩溃

我的代码在大约3天前运行良好。我尝试回到一个更早的提交,它工作了100%,但现在它仍然与exc_bad一起崩溃。只有在设备上运行应用程序时才会发生崩溃,如果我在模拟器上运行应用程序或使用仪器在设备上运行应用程序,它运行得非常好。当我更改我的googleapikey时,它说“您可能无权使用此apikey”但不再崩溃。该应用仅在通过xcode在设备上运行应用时崩溃。稍后在设备上运行相同版本而不连接到xcode时,它​​可以正常工作。我不确定我可以在此处添加哪些信息来帮助调试问题。我最近将xcode更新到6.4并使用最新更新更新了OSX。我使用的是google1.10.1sdk版本,使用Co

iphone - 在 Xcode 中打破 EXC_BAD_ACCESS?

我通常是iPhone开发和Xcode的新手,不知道如何开始对EXC_BAD_ACCESS信号进行故障排除。如何让Xcode在导致错误的确切行中断?我似乎无法让Xcode在导致问题的行上停止,但我确实在调试控制台中看到以下行:SunOct2515:12:14jasonsmacbookTestProject[1289]:CGContextSetStrokeColorWithColor:invalidcontextSunOct2515:12:14jasonsmacbookTestProject[1289]:CGContextSetLineWidth:invalidcontextSunOct2

ios - NSNotificationCenter 的帖子导致 "EXC_BAD_ACCESS"异常

UIViewController将自身添加到默认中心:[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(editFood)name:@"editFood"object:nil];然后一个UITableView委托(delegate)NSObject发布一个NSNotification:[[NSNotificationCenterdefaultCenter]postNotificationName:@"editFood"object:self];在运行时它会得到一个EXC_BAD_ACCESS异常