精华内容
参与话题
问答
  • 信息: No Spring WebApplicationInitializer types detected on classpath 十二月 06, 2016 5:44:29 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext ...
  • <p>If all profiles are detected, I want <code>autorandr --change</code> to prioritize <code>usb-c, and give it precedence before <code>laptop</code>. Current behavior doesn't do anything, and ...
  • Detected AnnotationActionValidatorManager, initializing it...在什么情况下会出现这样的提示,或者说出现这样的提示表示代码哪儿除了问题
  • (node:274) Warning: Possible EventEmitter memory leak detected. 11 unpipe listeners added. Use emitter.setMaxListeners() to increase limit (node:274) Warning: Possible EventEmitter memory leak ...
  • *** glibc detected *** boa.bin: malloc(): memory corruption: 0x0048b960 *** ======= Backtrace: ========= /lib/libc.so.6[0x401ebf3c] /lib/libc.so.6[0x401eec68] /lib/libc.so.6(__libc_malloc+0xa8)[0x401...
  • t being detected <h2>How to Reproduce <pre><code>console $ myth -x BECToken.sol No Issues being detected ... $ </code></pre> <h2>Expected behavior <p>Integer overflow should be detected <h2>...
  • <div><p>Mag sensor in BS-880 (HMC5883) is rarely detected at start up using SPRacingF3 clone board with either iNav 1.6.1 or 1.7.1. Appears to be a marginal timing issue as it will occasionally get ...
  • <p>If I connect the same smart card to my laptop, it is detected. <p>I have the correct drivers and libraries installed on the drone for the smart card. <p>Thanks for your help! <p>Edit: I ...
  • <p>I'm getting a server error (508 Loop Detected) although I don't see anything that I think could cause such a loop. <p>I've done some reading, but couldn't find much information on that and I ...
  • # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00002b884daad39f, pid=26965, tid=47864714798848 # # JRE version: OpenJDK Runtime Environment (7.0_101) ...
  • 1) Only 1 device is detected ("Arbeitszimmer" as Royal Philips Electronics device) and shown on alexa.amazon.de, sometimes Echo itself is shown as 2nd device. But device 2,3,4 on habridge are ...
  • Qt: Untested Windows version 6.2 detected! This is XeTeX, Version 3.1415926-2.3-0.9997.5 (MiKTeX 2.9) entering extended mode (H:\etude\master\resume\resume-zh_CN\resume-zh_CN\resume-zh_CN.tex ! ...
  • <p>The library should be detected with board NodeMCU 1.0 <h3>Actual behavior <p>Library not detected <h3>Steps to reproduce the behavior <p>Select NodeMCU 1.0 board and install the library <h4>Example...
  • <p>Uncorrectable sidevel detected ... Flying to tangent of body: Titan PT-2772 enters frame Titan Uncorrectable sidevel detected FW-3864 enters frame Saturn Planet suicide dive detected FW-3864 enters...
  • <div><p>Now that Craft have detected the boxes and saved them into a <code>.txt</code> file, can you add a script to extract/crop the detected boxes into images.</p><p>该提问来源于开源项目:...
  • *** buffer overflow detected ***: arm-linux-ar terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x741cf)[0x2b19ddccf1cf] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x...
  • glibc detected

    2015-10-27 11:24:00
    linux c编程错误集: 一次在一个函数里面想累计一个链表的长度,在一次重新合并成一个节点,出现了如下错误。 ...提示也不够具体,而且这是使用gcc -g *** 编译出来的结果,仍然没有提示 ...m

    linux c编程错误集:

    一次在一个函数里面想累计一个链表的长度,在一次重新合并成一个节点,出现了如下错误。



    乍一看,密密麻麻,很恐怖。提示也不够具体,而且这是使用gcc -g *** 编译出来的结果,仍然没有提示

    出错的位置。

    细细分析可知,glibc是linux GNU C的函数库。而后面malloc也提示了是malloc的调用出现了

    memory cruption的问题,也就是内存泄露,分配空间不够,或者访问了没有分配的堆空间导致的。

    后来查看发现是malloc的长度不够,漏加了一个节点的长度,改过之后,问题就好了~。

    如果不能精确定位的话,不是调试器不行,也许真的是调试技巧不够到位,后来使用gdb断点逐步定位

    发现,不是strcpy的时候直接提示你移除,而是print的时候才提示错误,但是根据上面的提示,也

    能手工定位到比较精确的范围。寻找malloc realloc这些函数就ok了。


    下面类似问题(转):

    http://blog.sina.com.cn/s/blog_5b5e95b40100utvy.html

    *** glibc detected *** malloc(): memory corruption: 0x09eab988 ***
    发现是由于memset越界写引起的。

    在Linux Server上不好模拟出来:不过若是先malloc,再越界memset,再free此内存块,然后malloc新内存块就会出现类似错误。
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
         char *p1 = (char*)malloc(210);
         if(p1 != NULL)
         {
             printf("malloc(210) succeeded\n");
         }
         if(p1 == memset(p1,0,300))
         {
             printf("memset(p1,0,300) succeeded\n");
         }

         free(p1);
         printf("Now char *p2 = (char*)malloc(210)\n");
         char *p2 = (char*)malloc(210);
         if(p2 != NULL)
         {
             printf("memset(p2,0,210) succeeded\n");
         }
         else
         {
             printf("memset(p2,0,210) failed\n");
         }
         return 0;

    }

    会出现:
    malloc(210) succeeded
    memset(p1,0,300) succeeded
    *** glibc detected *** double free or corruption (out): 0x09f0e008 ***
    Abort

    找了一篇类似文章:http://blog.csdn.net/tommy_lgj/archive/2008/08/18/2790452.aspx
    通常我们会犯的内存问题大概有以下几种:
    1.内存重复释放,出现double free时,通常是由于这种情况所致。
    2.内存泄露,分配的内存忘了释放。
    3.内存越界使用,使用了不该使用的内存。
    4.使用了无效指针。
    5.空指针,对一个空指针进行操作。

    对于第一种和第二种,第五种情况,就不用多说,会产生什么后果大家应该都很清楚。
    第四种情况,通常是指操作已释放的对象,如:
    1.已释放对象,却再次操作该指针所指对象。
    2.多线程中某一动态分配的对象同时被两个线程使用,一个线程释放了该对象,而另一线程继续对该对象进行操作。
    我们重点探讨第三种情况,相对于另几种情况,这可以称得上是疑难杂症了(第四种情况也可以理解成内存越界使用)。
    内存越界使用,这样的错误引起的问题存在极大的不确定性,有时大,有时小,有时可能不会对程序的运行产生影响,正是这种不易重现的错误,才是最致命的,一旦出错破坏性极大。
    什么原因会造成内存越界使用呢?有以下几种情况,可供参考:
    例1:
            char buf[32] = {0};
            for(int i=0; i<n; i++)// n < 32 or n > 32
            {
                buf[i] = 'x';
            }
            ....
            
    例2:
            char buf[32] = {0};
            string str = "this is a test sting !!!!";
            sprintf(buf, "this is a test buf!string:%s", str.c_str()); //out of buffer space
            ....
            
    例3:
            string str = "this is a test string!!!!";
            char buf[16] = {0};
            strcpy(buf, str.c_str()); //out of buffer space
            
    类似的还存在隐患的函数还有:strcat,vsprintf等,同样,memcpy, memset, memmove等一些内存操作函数在使用时也一定要注意。
            
    当这样的代码一旦运行,错误就在所难免,会带来的后果也是不确定的,通常可能会造成如下后果:
    1.破坏了堆中的内存分配信息数据,特别是动态分配的内存块的内存信息数据,因为操作系统在分配和释放内存块时需要访问该数据,一旦该数据被破坏,以下的几种情况都可能会出现。 
       *** glibc detected *** free(): invalid pointer:
       *** glibc detected *** malloc(): memory corruption:
       *** glibc detected *** double free or corruption (out): 0x00000000005c18a0 ***
       *** glibc detected *** corrupted double-linked list: 0x00000000005ab150 ***        
    2.破坏了程序自己的其他对象的内存空间,这种破坏会影响程序执行的不正确性,当然也会诱发coredump,如破坏了指针数据。
    3.破坏了空闲内存块,很幸运,这样不会产生什么问题,但谁知道什么时候不幸会降临呢?
    通常,代码错误被激发也是偶然的,也就是说之前你的程序一直正常,可能由于你为类增加了两个成员变量,或者改变了某一部分代码,coredump就频繁发生,而你增加的代码绝不会有任何问题,这时你就应该考虑是否是某些内存被破坏了。
    排查的原则,首先是保证能重现错误,根据错误估计可能的环节,逐步裁减代码,缩小排查空间。
    检查所有的内存操作函数,检查内存越界的可能。
    常用的内存操作函数:
       sprintf snprintf 
       vsprintf vsnprintf
       strcpy strncpy strcat 
       memcpy memmove memset bcopy
    如果有用到自己编写的动态库的情况,要确保动态库的编译与程序编译的环境一致。

    总结的很详细,照此情形应该是memset破坏了堆的管理数据,要搞清楚具体怎么破坏的,还要跟一下glibc malloc的代码,看一下堆的管理机制。

    展开全文
  • [java] # A fatal error has been detected by the Java Runtime Environment: [java] # [java] # SIGSEGV (0xb) at pc=0x0071902b, pid=7052, tid=3078032240 [java] # [java] # JRE version: 6.0_21-b06 ...
  • 原文:http://www.itwendao.com/article/detail/409056.htmlGCC “stack smashing detected”机制相信使用C/C++语言开发软件的程序猿们都经历过‘栈溢出’的问题。‘栈溢出’问题通常十分的隐蔽,有的时候问题复现也...

    原文:http://www.itwendao.com/article/detail/409056.html

    GCC “stack smashing detected”机制

    相信使用C/C++语言开发软件的程序猿们都经历过‘栈溢出’的问题。‘栈溢出’问题通常十分的隐蔽,有的时候问题复现也十分的困难。每当软件出现莫名其妙的问题时,总是有人怀疑是不是栈溢出了,但是问题的排查又十分的困难,所以,‘栈溢出’就是广大C/C++开发者的噩梦。大家不禁要问有没有通用的方法来避免或者来检测’栈溢出‘问题呢?其实,’栈溢出‘问题有的时候是没有办法避免的,即使是经验丰富的程序猿同样可以陷入’栈溢出‘的陷阱,相信大家都听说过很多知名的软件系统由于‘栈溢出’而导致的各类安全问题。为了减少‘栈溢出’的出现几率,我们平时在编写代码的时候要时刻注意栈上的缓冲区的使用方式,熟悉关于栈缓冲区的各种操作API(使用最为频繁的就是字符串操作函数)的正确使用方式。但是,人总有犯错误的时候,那有没有一种机制来检测‘栈溢出’呢?今天要说的就是gcc编译器提供关于stack保护的各种机制。 
    首先,来看一个比较明显的栈溢出的代码段,本段代码的编译平台为:Ubuntu14.04 Gcc的版本为4.8.4。代码内容如下:

    #include <string.h>
    #include <stdio.h>
    
    int main(void)
    {
        char array[5] = {0};
    
        strcpy(array, "stackoverflow");
    
        return 0;
    }

    该段代码,首先定义了一个char型数组,数组大小为5,然后我们使用strcpy函数拷贝字符串“stackvoerflow”到array缓冲区,很明显array缓冲区溢出了,稍后会介绍strcpy的使用方式。

    然后,我们编译运行,结果如下:

    lhl@lhl-Aspire-4930:~/技术总结/linux/gcc$ ./buscore 
    *** stack smashing detected ***: ./buscore terminated
    已放弃 (核心已转储)

    可以看到程序崩溃了,而且还有一些提示信息:

    *** stack smashing detected ***: ./buscore terminated

    该提示信息就是gcc提供的栈溢出保护机制在检测到程序存在缓冲区溢出时所打印出来的提示信息。那gcc提供栈溢出保护机制是什么呢?

    通过查看gcc的使用手册,我们可以知道该报机制为gcc的-fstack-protector一系列选项所提供的缓冲区溢出检测机制。下面为该机制的原理介绍:

    当-fstack-protector启用时,当其检测到缓冲区溢出时(例如,缓冲区溢出攻击)时会立即终止正在执行的程序,并提示其检测到缓冲区存在的溢出的问题。这种机制是通过在函数中的易被受到攻击的目标上下文添加保护变量来完成的。这些函数包括使用了allcoa函数以及缓冲区大小超过8bytes的函数(此处不是很明白,上面的例子缓冲区大小为5同样触发了该机制)。这些保护变量在进入函数的时候进行初始化,当函数退出时进行检测,如果某些变量检测失败,那么会打印出错误提示信息并且终止当前的进程。

    注意:在测试过程中,当缓冲区的大小小于8bytes同样触发了该机制。在函数中使用了alloca函数后,缓冲区溢出后但没有触发该机制,不知为何? 
    >

        char *stack_ptr = alloca(0);
    
        char *str = "hello, world";
    
        strcpy(stack_ptr, str); 
    
        printf("stack_ptr = %s\n", stack_ptr);
        上面的代码并不能触发该机制?

    那问题来了,-fstack-protector真的是万能的吗?它真的可以检测一切栈溢出的问题吗?我们可以通过下面的例子测试一下:

    #include <alloca.h>
    #include <string.h>
    #include <stdio.h>
    
    typedef struct
    {
        char str[2];
    }overflow_t;
    int main(void) 
    {
    char *str = "welcom to China";
    
        overflow_t v;  
    
        printf("sizoef(v) = %d\n", sizeof(v));
    
        memcpy(&v, str, strlen(str));
    
        printf("v.str = %s\n", v.str);
    }
    gcc buscore.c -o buscore,我们编译运行结果如下:
    sizoef(v) = 2
    v.str = welcom to China

    我们看到程序正常执行了,并没有触发栈溢出检测?这是为什么呢?通过进一步查阅gcc手册,发现其还提供一个-fstack-protector-all选项,其解释为:

    其功能类似于-fstack-protector,但是其为所有的函数都进行栈溢出检测。重新编译程序,并加上-fstack-protector-all选项,然后运行结果如下:

    sizoef(v) = 2 
    v.str = welcom to China 
    * stack smashing detected *: ./buscore terminated 
    已放弃 (核心已转储)。可以看到进程成功的检测到了栈溢出。

    所以,我们在开发软件时,最好加上-fstack-protector-all选项,这很大一部分栈溢出问题就会被探测到。

    同时我们也应该注意到,当进程由于栈溢出崩溃时,会产生coredump文件,对于coredump的配置可以参见 
    Android系统coredump这篇文章。 
    那怎么根据coredump文件定位问题呢?上面介绍-fstack-protector机制的原理时,说过其会在函数退出时进行检测,这样我们就可以根据coredump中的函数栈信息定位到发送栈溢出的函数,这样问题的范围就大大缩小了,我们可以专注于查看出问题的函数,然后定位出哪里存在栈溢出

    stackoverflow 也有相关介绍:

    http://stackoverflow.com/questions/1345670/stack-smashing-detected

    http://stackoverflow.com/questions/10712972/what-is-the-use-of-fno-stack-protector

    对于第三方库,建议采用-fno-stack-protector选项,来避免*** stack smashing detected ***错误



    展开全文
  • 解决办法: 删除工程下的重新执行: 数据库创建成功:

    解决办法:
    删除工程下的这里写图片描述

    重新执行:
    这里写图片描述

    数据库创建成功:
    这里写图片描述

    展开全文
  • 最近在vue项目中遇到一个报错,虽然不影响使用,但是报错还是得解决的 一进入某页面,就会冒出这么一长串的报错,这个是由于v-for循环里,key值可能重复了,所以会报这个错。查看了一下页面代码: ...

    ##最近在vue项目中遇到一个报错,虽然不影响使用,但是报错还是得解决的
    这里写图片描述
    一进入某页面,就会冒出这么一长串的报错,这个是由于v-for循环里,key值可能重复了,所以会报这个错。查看了一下页面代码:
    这里写图片描述
    key值是必须唯一的,如果重复就会报错
    可以把key值改为index,就可以避免这个情况:
    这里写图片描述
    不过直接用index作为key并不是一个好的选择,这样做不利于性能的提升,可以使用item的唯一id作为key更好!

    展开全文
  • 此文档描述了Detected memory leaks内存泄漏的简单检测方法,通过调用系统函数,在debug模式下运行,可以很快定位出内存泄漏之处;注:此方法并不能适用所有Detected memory leaks情况
  • July 16: no exposure detected/COVID checks were being done. Upgraded app to version 53 @ 249pm July 17: 625 am, no push notifications / no exposure detected (app running in background) no COVID19 ...
  • Duplicate <http> element detected

    千次阅读 2014-08-07 23:56:07
    1、错误描述 2、错误原因 3、解决办法
  • c# detected process waiting for input

    千次阅读 2013-01-31 19:58:17
    1.get the process need to judgement  2.get all threads in the process and find if any thread is waiting and reason is user request  method code : public bool IsWaitingForUserInput(Process p
  • JNI DETECTED ERROR IN APPLICATION解决记录

    万次阅读 2015-08-13 14:23:08
    最近遇到一个JNI的问题,同一套代码在Android4.4版本前的设备上运行是OK的,但是在Android5.0之后的设备上就会崩溃,查看logcat发现报JNI DETECTED ERROR IN APPLICATION错误。 (1)第一个错误: JNI DETECTED ...
  • USB Device Over Current Status Detected! System will Shut Down After 15 Second!这个应该是华硕主板的通病,一般都是跳线未设置好或USB电源短路造成的,提供一张维修方法,仅供参考。
  • As 启动项目出现unsupported modules detected

    万次阅读 多人点赞 2018-10-25 17:23:06
    unsupported modules detected Compilation is not supported for following modules: app. Unfortunately you can’t have non-Gradle Java modules and Android-Gradle modules in one project 然后项目syc...
  • ![clipboard1](https://user-images.githubusercontent.com/5669954/27073095-ec082828-5022-11e7-9c38-115491a3bd6d.png) ![clipboard2]...

空空如也

1 2 3 4 5 ... 20
收藏数 18,153
精华内容 7,261
热门标签
关键字:

detected