致命信号11(SIGSEGV)发生在Android Studio程序中

时间:2017-01-22 08:26:08

标签: java android

有时会发生错误(实际上经常发生)。

A/libc: Fatal signal 11 (SIGSEGV) at 0x830ab2cc (code=1), thread 24294 (Thread-1174)

代码如下:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.displaygraph);
    Intent intent = getIntent();

    GraphView graph = (GraphView) findViewById(R.id.graph);
    series = new LineGraphSeries<DataPoint>();
    graph.addSeries(series);

    Viewport viewport = graph.getViewport();
    viewport.setYAxisBoundsManual(true);
    viewport.setXAxisBoundsManual(true);
    viewport.setMinY(0);
    double max=data[0];

    for (int i = 0; i < data.length; i++) {
        if (data[i] > max) {
            max = data[i];
            Log.w(TAG,"max"+max);
        }
    }
    viewport.setMaxY(max);
    viewport.setMinX(0);
    viewport.setMaxX(450);
    graph.getViewport().setScalable(true); 
    graph.getViewport().setScalableY(true); 

    seriesecg = new LineGraphSeries<DataPoint>();
    GraphView graphecg = (GraphView) findViewById(R.id.graphecg);
    graphecg.addSeries(seriesecg);
    Viewport viewportecg = graphecg.getViewport();
    viewportecg.setYAxisBoundsManual(true);
    viewportecg.setXAxisBoundsManual(true);
    viewportecg.setMinY(0);
    viewportecg.setMaxY(3000);
    viewportecg.setMinX(0);
    viewportecg.setMaxX(450);
    graphecg.getViewport().setScalable(true); 
    graphecg.getViewport().setScalableY(true);
}

@Override
protected void onResume() {
    super.onResume();
    new Thread(new Runnable() {
        @Override
        public void run() {
            // we add 450 new entries
            for (int i = 0; i <= 449; i++) {
                final int finalI = i;
                final int finalII = i;
                Log.w(TAG, "finalI"+finalI);
                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                       addEntry(finalI,ppg);
                    }
                });
                // sleep to slow down the add of entries
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    // manage error ...
                }
            }
        }
    }).start();
}

// add random data to graph
private void addEntry(int i,double[] data) {
    if(i<=449) {
        Log.w(TAG, "ppg" + data[i]+"/"+i);
        series.appendData(new DataPoint(i, data[i]), false, 450);
    }
}

logcat如下:

01-22 19:27:01.650 1041-1370/? I/KeyguardUpdateMonitor: visibility is same
01-22 19:27:01.650 818-818/? D/CrashAnrDetector: Build: samsung/lt03ltezs/lt03lte:4.4.2/KOT49H/P605ZSUCOD1:user/release-keys
                                                 Hardware: MSM8974
                                                 Revision: 11
                                                 Bootloader: P605ZSUCOD1
                                                 Radio: unknown
                                                 Kernel: Linux version 3.4.0-4665213 (dpi@SWDD5621) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Mon Apr 13 11:19:19 KST 2015

                                                 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
                                                 Build fingerprint: 'samsung/lt03ltezs/lt03lte:4.4.2/KOT49H/P605ZSUCOD1:user/release-keys'
                                                 Revision: '11'
                                                 pid: 12476, tid: 12476, name: elerometergraph  >>> com.android.accelerometergraph <<<
                                                 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 82f5583c
                                                     r0 402aaedb  r1 82f55838  r2 402aaed8  r3 42caa968
                                                     r4 bedfd1b8  r5 42277008  r6 bedfd20c  r7 402aaaa8
                                                     r8 00000000  r9 42caad98  sl 416b049c  fp 80000000
                                                     ip 00000003  sp bedfd010  lr 4172ff51  pc 4172ff3e  cpsr 900f0030
                                                     d0  0080000000001000  d1  0200000000004000
                                                     d2  0000000000000008  d3  0000888800000000
                                                     d4  0000004080000000  d5  0000200000000000
                                                     d6  1000000000200000  d7  0000800000000010
                                                     d8  44618b1844624bf2  d9  3e99999a4040da00
                                                     d10 43380000c3892666  d11 c389266644618b18
                                                     d12 4252ccd044624bf2  d13 c07124cccccccccd
                                                     d14 4034000000000000  d15 43a38000c3892666
                                                     d16 0100000000000000  d17 0004400000020000
                                                     d18 0004400000000000  d19 2000010000440000
                                                     d20 000a402000088100  d21 0000000000044000
                                                     d22 0022000000008800  d23 1100000000000000
                                                     d24 3fd1b10853a79915  d25 3fd554fa9ca0567a
                                                     d26 3fdb6db71408e660  d27 3fe33333332d4313
                                                     d28 3ff0000000000000  d29 0000000000000001
                                                     d30 4059000000000000  d31 4024000000000000
                                                     scr 20000013

                                                 backtrace:
                                                     #00  pc 00075f3e  /system/lib/libdvm.so (mspace_bulk_free+89)
                                                     #01  pc 00076e63  /system/lib/libdvm.so (dvmHeapSourceFreeList(unsigned int, void**)+70)
                                                     #02  pc 0003a7b4  /system/lib/libdvm.so
                                                     #03  pc 0002c4ec  /system/lib/libdvm.so (dvmHeapBitmapSweepWalk(HeapBitmap const*, HeapBitmap const*, unsigned int, unsigned int, void (*)(unsigned int, void**, void*), void*)+176)
                                                     #04  pc 0003b53c  /system/lib/libdvm.so (dvmHeapSweepUnmarkedObjects(bool, bool, unsigned int*, unsigned int*)+284)
                                                     #05  pc 0002c94c  /system/lib/libdvm.so (dvmCollectGarbageInternal(GcSpec const*)+452)
                                                     #06  pc 0002d45c  /system/lib/libdvm.so (dvmMalloc(unsigned int, int)+356)
                                                     #07  pc 0006cb03  /system/lib/libdvm.so
                                                     #08  pc 0002c36f  /dev/ashmem/dalvik-jit-code-cache (deleted)

                                                 stack:
                                                          bedfcfd0  bedfd1ec  [stack]
                                                          bedfcfd4  40129d5d  /system/lib/libc.so (realloc+12)
                                                          bedfcfd8  00000008  
                                                          bedfcfdc  bedfd2a8  [stack]
                                                          bedfcfe0  78e476f8  
                                                          bedfcfe4  00000000  
                                                          bedfcfe8  00000003  
                                                          bedfcfec  bedfd100  [stack]
                                                          bedfcff0  42ca9b88  /dev/ashmem/dalvik-heap (deleted)
                                                          bedfcff4  bedfd174  [stack]
                                                          bedfcff8  42277008  /dev/ashmem/dalvik-heap (deleted)
                                                          bedfcffc  bedfd20c  [stack]
                                                          bedfd000  42caa968  /dev/ashmem/dalvik-heap (deleted)
                                                          bedfd004  00000000  
                                                          bedfd008  42caa950  /dev/ashmem/dalvik-heap (deleted)
                                                          bedfd00c  4172ff51  /system/lib/libdvm.so (mspace_bulk_free+108)
                                                     #00  bedfd010  00029864  
                                                          bedfd014  416b0438  
                                                          bedfd018  00000065  
                                                          bedfd01c  00000065  
                                                          bedfd020  bedfd078  [stack]
                                                          bedfd024  416b0438  
                                                          bedfd028  42277008  /dev/ashmem/dalvik-heap (deleted)
                                                          bedfd02c  41730e67  /system/lib/libdvm.so (dvmHeapSourceFreeList(unsigned int, void**)+74)
                                                     #01  bedfd030  00000065  
                                                          bedfd034  402abf98  /system/lib/libandroidfw.so
                                                          bedfd038  bedfd2cc  [stack]
                                                          bedfd03c  bedfd2cc  [stack]
                                                          bedfd040  00000065  
                                                          bedfd044  61fff040  /dev/ashmem/dalvik-bitmap-2 (deleted)
                                                          bedfd048  617ff040  /dev/ashmem/dalvik-bitmap-1 (deleted)
                                                          bedfd04c  0001acbf  
                                                          bedfd050  bedfd078  [stack]
                                                          bedfd054  416f47b8  /system/lib/libdvm.so
                                                     #02  bedfd058  00000000  
                                                          bedfd05c  00000000  
                                                          bedfd060  00000030  
                                                          bedfd064  00015010  
                                                          bedfd068  01501
01-22 19:27:01.650 818-818/? D/CrashAnrDetector: processName:com.android.accelerometergraph
01-22 19:27:01.650 818-818/? D/CrashAnrDetector: broadcastEvent : com.android.accelerometergraph SYSTEM_TOMBSTONE
01-22 19:27:01.660 1041-1055/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)
01-22 19:27:01.660 1041-1055/? I/KeyguardUpdateMonitor: visibility is same

有时代码有效,但有时它不会......但是当它发生时,它会在i的值达到449之前这样做。我认为它与我的jni代码有关。但在评论并删除所有会调用c代码的内容后,错误仍然存​​在。

感谢您的帮助......

0 个答案:

没有答案