草庐IT

bad-alloc

全部标签

c++ - std::bad_function_call 的调用堆栈

我有一个linux程序终止于:在抛出“std::bad_function_call”实例后终止调用遗憾的是,在调用堆栈中我看不到从哪里调用了错误的函数。此外,它在生成此错误之前进行了很多次迭代,因此我无法真正手动调试它。有没有办法找到有问题的代码段? 最佳答案 你能设置一个catchpoint吗?来自gdb?你会想要执行catchthrow在运行程序之前从gdb命令行,然后在抛出异常时打断点。 关于c++-std::bad_function_call的调用堆栈,我们在StackOverf

c - execvp : bad address error

我正在linux上工作,以创建一个shell服务于各种命令。我有不同的内置命令,其中之一是“历史”。我有一个reshist()函数来重置包含用户输入的数组。我还想使用execvp()和多管道操作启用系统命令。reshist()函数和多管道操作在它们不在一起时运行良好,但是当我同时使用它们时,它会导致execvp()引发“错误地址"错误。我知道reshist()函数无法正确地将输入添加到列表中,但这没什么大不了的。问题是为什么我得到错误。可能是什么原因?有更好的想法让它们一起工作吗?#include#include#include#include#include#include#incl

c++ - linux 上的运算符 new 和 bad_alloc

在Linux上,如果内存不足,malloc不一定返回空指针。如果您真的内存不足,您可能会取回一个指针,然后让OOMkiller开始吞噬进程。c++的operatornew也是如此还是会得到bad_alloc异常? 最佳答案 它是一个内核函数而不是语言函数-您可以使用vm.overcommit_memory和vm.overcommit_ratiosysctl来控制它。它们在/proc/sys/vm/overcommit_memory和/proc/sys/vm/overcommit_ratio的proc文件系统中可见。

linux - "Bad File Descriptor"异常因为使用nohup

我的应用程序可以通过linux操作系统中的终端作为shell可执行文件启动。我正常执行它时没有问题,但是当我将它与“nohup”命令一起执行时,它会在“nohup.out”中记录以下异常文件`Exceptioninthread"SpringShell"java.lang.IllegalStateException:Shelllinereadingfailureatorg.springframework.shell.core.JLineShell.promptLoop(JLineShell.java:541)atorg.springframework.shell.core.JLineSh

linux - git 守护进程 : "unable to allocate any listen sockets on host (null) port 9418"

在Debiansqueeze上,我收到系统日志错误:unabletoallocateanylistensocketsonhost(null)port9418而且我也不能远程克隆。文件/etc/service/git-daemon/run:"$(git--exec-path)"/git-daemon--verbose--base-path=/var/cache/git--detach--syslog--reuseaddr--export-allnetstat-l|grepgit输出:tcp00*:git*:*LISTENtcp600[::]:git[::]:*LISTEN我目前正在使用s

c - 文件打开成功但读取结果为 "Bad file descriptor"错误并且统计显示文件大小为零

我正在做一项作业,我们应该对使用较差的加密算法加密的PDF进行加密分析。教授提供的代码使用fd=open(filename,O_CREAT|O_WRONLY,S_IRUSR|S_IWUSR)创建加密文件。在我尝试解密的代码中,我使用fd_in=open(file,O_RDONLY)打开该文件。问题是,当我尝试从文件中读入时,出现“文件描述符错误”错误。我使用stat来尝试获取有关文件描述符对已打开文件的“想法”的更多信息,它显示文件的长度为0,而实际上它只有几百KB。我使用的调试代码是:if(0>(len=read(fd_in,(char*)&read_buff,BITE))){//B

linux - 糟糕 : kernel access of bad area, 信号:11 - 'swapper' - 终止中断处理程序

在嵌入式linux环境中(在PowerPC上定制的2.4.25)几个小时后我得到以下内核panic:Oops:kernelaccessofbadarea,sig:11NIP:C9471C7CXER:20000000LR:C0018C74SP:C0198E20REGS:c0198d70TRAP:0800NottaintedMSR:00009030EE:1PR:0FP:0ME:1IR/DR:11DEAR:C9876FFF,ESR:00000000TASK=c0197020[0]'swapper'Lastsyscall:120lastmath00000000lastaltivec000000

c - fork 失败 : Cannot allocate memory

我有一个在linux机器上运行的程序。它fork一个进程来发送邮件,并经常记录fork失败消息,指出它无法分配内存。当我检查驻留内存的大小时,它大约为12Gb(交换在这台机器上配置为只有1Gb)。有什么方法可以确定这一大块内存不是泄漏,而只是内存增长?此外,是否存在可以调整的系统限制,以便我不会遇到任何fork失败? 最佳答案 要检查内存泄漏,您可能希望在Valgrind下运行该程序:http://valgrind.org要从控制台/shell获取/设置限制,可以使用ulimit命令。在程序内部,系统调用getrlimit()/se

ruby - Puppet 失败并显示 : Cannot allocate memory - fork(2)

这是我的puppet命令:exec{'unzipData.zip':command=>'/usr/bin/unzip-qq-o/vagrant/modules/wls/files/Data.zip-d/weblogic/app',group=>'vagrant',user=>'vagrant',require=>File['/weblogic/app/WEB-INF'],}这是错误信息:Error:/Stage[main]/Deploy_webapp/Exec[unzipData.zip]/returns:changefromnotrunto0failed:Cannotallocate

python /usr/bin/env : bad interpreter: Not a directory

我做错了。我安装了Python3,然后我执行了以下命令以使默认版本的Python成为Python3sudoln-fs/opt/Python-3.4.1/python/usr/bin/python但我想回到python2.7而我做到了sudoln-fs/usr/bin/python2.7/python/usr/bin/python现在,当我想运行一个带有python的bash脚本时,出现以下错误:/usr/bin/env:badinterpreter:Notadirectory当我运行这个命令时:ls-l/usr/bin/env我的结果是红色的:lrwxrwxrwx1rootroot25