草庐IT

linux - 为 MATLAB 故障转储文件指定输出目录

我在Linux上运行MATLAB,主目录(/home/$USER)中的存储空间有限。当MATLAB崩溃时,它会将故障转储文件(matlab_crash_dump.XXXX)放在我的主目录中。我想更改放置这些文件的目录。执行此操作的最佳方法是什么? 最佳答案 您需要指定MATLAB_LOG_DIR环境变量。MATLAB将使用它来存储所有故障转储。来自relatedMATLABCentraldiscussion:Ifyouhavesettheenvironmentvariable$MATLAB_LOG_DIR,that'swherewe

linux - 在 pthreads 线程的堆栈中预先设置故障的最佳方法是什么?

我正在为在嵌入式Linux系统中运行的实时程序编写代码。由于我们不会在页面错误上不可预知地停滞是至关重要的,我想在堆栈中预先设置错误,以便保证我们使用的区域被mlockall()调用覆盖。对于主线程来说这很简单;简单地做一些大的alloca()并确保每隔几页写一次。这是可行的,因为在程序启动时,堆栈限制远大于我们需要的数量;我们最终准确地分配了多少我们预置的。但是,对于pthread堆栈,它们是否也会使用MAP_GROWSDOWN进行分配?如果是这样,考虑到这一点,最好的方法是什么?我们不知道libc启动消耗了多少(已知)堆栈大小我们不想为堆栈分配不必要的内存我知道我可以使用pthre

linux - 如何使用 GDB 分析故障转储文件

我有一个在CentOS下运行的服务器应用程序。服务器每秒响应许多请求,但每隔一小时左右就会反复崩溃并创建一个故障转储文件。情况真的很糟糕,我需要尽快找出坠机原因。我怀疑问题是并发问题,但我不确定。我可以访问源代码和故障转储文件,但我不知道如何使用故障转储来查明问题。非常感谢任何建议。 最佳答案 首先要查找的是程序崩溃时收到的错误消息。这通常会告诉您发生了什么样的错误。例如“segmentationfault”或“SIGSEGV”几乎肯定意味着您的程序已经取消引用NULL或其他无效指针。如果程序是用C++编写的,那么错误消息通常会告诉

c++ - 以编程方式计算缓存故障

我需要在一堆关于内存层次结构效率的假设中评估C++函数所花费的时间(例如:当我们有缓存未命中、缓存命中或读取数组的一部分时发生页面错误时所花费的时间),所以我希望有一些库可以让我计算缓存未命中/页面错误,以便能够自动生成性能摘要。我知道有一些工具(如cachegrind)可以提供有关给定应用程序执行的一些相关统计信息,但正如我已经说过的,我想要一个库。edit哦,我忘了:我正在使用Linux,我对可移植性不感兴趣,这是学术上的事情。欢迎提出任何建议! 最佳答案 最新的CPU(包括AMD和Intel)具有可用于此类工作的性能监视器寄存

c - 以编程方式打开核心/故障转储

我知道我能跑“ulimit-c无限制”在shell中为当前用户打开核心转储。我想知道如何从C中以编程方式执行此操作?我看到有一个ulimit调用,但它已被弃用,取而代之的是get/setrlimit。我想知道的是允许故障转储的对setrlimit的等效调用是什么生成? 最佳答案 我找到了可行的解决方案。现在正在创建核心文件。structrlimitcore_limit;core_limit.rlim_cur=RLIM_INFINITY;core_limit.rlim_max=RLIM_INFINITY;if(setrlimit(RL

linux - 模拟有读取错误的故障 block 设备?

我正在寻找一种更简单的方法来针对在读取某些block时生成i/o读取错误的故障block设备测试我的应用程序。尝试使用具有已知坏block的物理硬盘驱动器是一种痛苦,如果存在的话,我想找到一种软件解决方案。我确实找到了LinuxDiskFailureSimulationDriver它允许创建一个接口(interface),该接口(interface)可以配置为在读取特定范围的block时生成错误,但它适用于2.4Linux内核并且尚未针对2.6进行更新。完美的是一个losetup和循环驱动程序,它还允许您将其配置为在尝试从给定的一组block中读取时返回读取错误。

linux - 如何在测试期间模拟故障磁盘?

在LinuxVM(Vmware工作站或类似设备)中,我如何模拟以前工作的磁盘上的故障?我在生产中遇到过光盘出现故障的情况(可能是Controller、电缆或固件问题)。显然这是不可预测或不可重现的,我想测试我的监控以确保它正确警报。理想情况下,我希望能够模拟写入失败但读取成功以及完全失败的情况,即scsi接口(interface)将错误报告回内核。 最佳答案 有几个层可以模拟磁盘错误。如果您正在测试单个用户空间程序,最简单的方法可能是插入适当的调用(例如write())并让它们有时返回错误。libfiu故障注入(inject)库ca

php - 尝试从 PHP 脚本连接到 Redis 时对 "Permission denied"进行故障排除

服务器6379端口开放,我可以在SSH中成功运行telnetlocalhost6379。我在PHP中尝试了Predis/phpredis客户端库,但它仍然不起作用:Predis在打开6379套接字时给出“权限被拒绝”错误。phpredis给出“redis服务器消失”。 最佳答案 问题解决了,输入:/usr/sbin/setseboolhttpd_can_network_connect=1默认情况下,SELinux不允许Apache建立套接字连接。可以找到更多信息here. 关于php-尝

PHP foreach by reference 在遍历对象数组时会导致奇怪的故障

我有一个对象数组。对象主要有一堆属性,因为它们是元数据对象。就是这样$objects[]就像一堆具有以下属性的项目:object->item1,object->item2等我想为这些对象中的每一个添加一些东西,所以...foreach($objectsas&$object){$object->newItem=(somethingIcompute);}然后,我想将这些对象显示为html中的列表。所以,我去:foreach($objectsas$object){}好的。现在,它工作正常,除了最后一个对象被丢弃并且倒数第二个对象显示两次。什么鬼??这对你来说有意义吗?

php - 将 ereg() 更改为 preg_match() 时的故障排除 "Delimiter must not be alphanumeric or backslash"错误

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Convertingeregexpressionstopreg';?>我得到了这个错误Deprecated:Functionereg()isdeprecatedinC:\ProgramFiles\EasyPHP-5.3.8.1\www\m\img.phponline5Deprecated:Functionereg()isdeprecatedinC:\ProgramFiles\EasyPHP-5.3.8.1\www\m\img.phponline6preg_match()函数给出此错误Warning:preg_