https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123

            Bug ID: 64123
           Summary: [5 Regression] Instrumented Firefox segfaults on start
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

Building Firefox with PGO results in a segfault in the instrumented
browser:

markus@x4 bin % gdb ./firefox
Reading symbols from ./firefox...done.
(gdb) set follow-fork-mode parent                                               
(gdb) run
Starting program: /var/tmp/moz-build-dir/dist/bin/firefox 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Loading JavaScript value pretty-printers; see js/src/gdb/README.
If they cause trouble, type: disable pretty-printer .* SpiderMonkey
[New Thread 0x7fffe7caa700 (LWP 17887)]
[Thread 0x7fffe7caa700 (LWP 17887) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7429fdd in fread () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff7429fdd in fread () from /lib/libc.so.6
#1  0x00007ffff7feff59 in gcov_read_words (words=words@entry=2) at
../../../gcc/libgcc/../gcc/gcov-io.c:518
#2  0x00007ffff7ff055e in __gcov_read_counter () at
../../../gcc/libgcc/../gcc/gcov-io.c:555
#3  0x00007ffff7fefc8d in gcov_get_counter () at
../../../gcc/libgcc/libgcov.h:316
#4  __gcov_merge_add (counters=0x7ffff7ff4a10
<__gcov0._Z30mozalloc_set_oom_abort_handlerPFvmE>, n_counters=<optimized out>)
at ../../../gcc/libgcc/libgcov-merge.c:56
#5  0x00007ffff1f2a736 in merge_one_data (crc32=3590671895,
eof_pos_p=<synthetic pointer>, summary_pos_p=<synthetic pointer>,
this_prg=0x7fffffff8620, prg_p=0x7fffffff9df0, 
    gi_ptr=0x7ffff7ff4540, filename=0x48fb70
"/var/tmp/moz-build-dir/memory/mozalloc/Unified_cpp_memory_mozalloc0.gcda") at
../../../gcc/libgcc/libgcov-driver.c:472
#6  dump_one_gcov (all_prg=<synthetic pointer>, this_prg=0x7fffffff8620,
crc32=3590671895, run_counted=0, gf=<synthetic pointer>, gi_ptr=0x7ffff7ff4540)
    at ../../../gcc/libgcc/libgcov-driver.c:787
#7  gcov_do_dump (list=<optimized out>, run_counted=0) at
../../../gcc/libgcc/libgcov-driver.c:846
#8  0x00007ffff1f2aab2 in __gcov_dump_one (root=root@entry=0x7ffff7ff5a80
<__gcov_root>) at ../../../gcc/libgcc/libgcov-driver.c:858
#9  0x00007ffff1f2acd8 in __gcov_dump_int () at
../../../gcc/libgcc/libgcov-interface.c:164
#10 0x00007ffff1f2ab7f in __gcov_flush () at
../../../gcc/libgcc/libgcov-interface.c:88
#11 0x00007ffff1f28bc6 in __gcov_fork () at
../../../gcc/libgcc/libgcov-interface.c:179
#12 0x00007ffff0fc4698 in fire_glxtest_process() () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#13 0x00007ffff0fb7ab2 in XREMain::XRE_mainInit(bool*) () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#14 0x00007ffff0fbdda3 in XREMain::XRE_main(int, char**, nsXREAppData const*)
() from /var/tmp/moz-build-dir/dist/bin/libxul.so
#15 0x00007ffff0fbe47b in XRE_main () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#16 0x0000000000404e59 in do_main(int, char**, nsIFile*) [clone .constprop.0]
()
#17 0x0000000000403b2f in main ()
(gdb) up
#1  0x00007ffff7feff59 in gcov_read_words (words=words@entry=2) at
../../../gcc/libgcc/../gcc/gcov-io.c:518
518           excess = fread (gcov_var.buffer + gcov_var.length,
(gdb) l
513     #else
514           if (gcov_var.length + words > gcov_var.alloc)
515             gcov_allocate (gcov_var.length + words);
516           excess = gcov_var.alloc - gcov_var.length;
517     #endif
518           excess = fread (gcov_var.buffer + gcov_var.length,
519                           1, excess << 2, gcov_var.file) >> 2;
520           gcov_var.length += excess;
521           if (gcov_var.length < words)
522             {

Reply via email to