Graeme Gill kirjoitti viestissään (lähetysaika keskiviikko, 4. maaliskuuta 2009): > What happens if you run it without the -N ? Attached results of running dispcal under valgrind. -- Markku Kolkka markku.kolkka@xxxxxx
$ valgrind ./dispcal -v -R -yl -H ==5385== Memcheck, a memory error detector. ==5385== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==5385== Using LibVEX rev 1732, a library for dynamic binary translation. ==5385== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==5385== Using valgrind-3.2.3, a dynamic binary instrumentation framework. ==5385== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==5385== For more details, rerun with: -v ==5385== Setting up the instrument Instrument Type: Eye-One Pro Serial Number: 317748 Firmware version: 503 CPLD version: 999 Date manufactured: 19-10-2007 U.V. filter ?: No Measure Ambient ?: Yes Tot. Measurement Count: 4784 Remission Spot Count: 118 Remission Scan Count: 17 Date of last Remission spot cal: Mon Feb 9 20:58:35 2009 Remission Spot Count at last cal: 106 Total lamp usage: 175.397812 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 ~1 cw[0] = 0.000000 Place cap on the instrument, or place in on a dark surface, or place on the white calibration reference, and then hit any key to continue, or hit Esc, ^C or Q to abort: Calibration complete Place instrument on test window. Hit Esc, ^C or Q to give up, any other key to continue: ==5385== Invalid write of size 8 ==5385== at 0x442483: i1pro_average_multimeas (i1pro_imp.c:3730) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid read of size 8 ==5385== at 0x44253E: i1pro_average_multimeas (i1pro_imp.c:3746) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F8 is 8 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid write of size 8 ==5385== at 0x442547: i1pro_average_multimeas (i1pro_imp.c:3746) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F8 is 8 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid read of size 8 ==5385== at 0x4425BA: i1pro_average_multimeas (i1pro_imp.c:3756) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid write of size 8 ==5385== at 0x4425DA: i1pro_average_multimeas (i1pro_imp.c:3756) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid read of size 8 ==5385== at 0x4425F3: i1pro_average_multimeas (i1pro_imp.c:3757) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D237E8 is 1,016 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid write of size 8 ==5385== at 0x442615: i1pro_average_multimeas (i1pro_imp.c:3757) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D237E8 is 1,016 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid read of size 8 ==5385== at 0x44264F: i1pro_average_multimeas (i1pro_imp.c:3761) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid write of size 8 ==5385== at 0x442664: i1pro_average_multimeas (i1pro_imp.c:3761) ==5385== by 0x440736: i1pro_whitemeasure_3 (i1pro_imp.c:2884) ==5385== by 0x4403CC: i1pro_whitemeasure (i1pro_imp.c:2795) ==5385== by 0x43BDB3: i1pro_imp_calibrate (i1pro_imp.c:1399) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== ==5385== Invalid free() / delete / delete[] ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BDD1: i1pro_imp_calibrate (i1pro_imp.c:1401) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) ==5385== Address 0x4D233F0 is 0 bytes inside a block of size 1,024 free'd ==5385== at 0x4A0560B: free (vg_replace_malloc.c:233) ==5385== by 0x520613: free_dvector (numsup.c:264) ==5385== by 0x43BC48: i1pro_imp_calibrate (i1pro_imp.c:1384) ==5385== by 0x437190: i1pro_calibrate (i1pro.c:232) ==5385== by 0x41972C: disprd_read (dispsup.c:540) ==5385== by 0x409B9E: main (dispcal.c:1777) patch 3 of 3 Measuring VideoLUT table entry precision. patch 6 of 6 patch 6 of 6 patch 6 of 6 Uncalibrated response: Black level = 0.27 cd/m^2 White level = 127.88 cd/m^2 Aprox. gamma = 2.24 Contrast ratio = 466:1 White chromaticity coordinates 0.3123, 0.3272 White Correlated Color Temperature = 6538K, DE 2K to locus = 3.6 White Correlated Daylight Temperature = 6539K, DE 2K to locus = 1.2 White Visual Color Temperature = 6408K, DE 2K to locus = 3.4 White Visual Daylight Temperature = 6581K, DE 2K to locus = 1.1 Effective LUT entry depth seems to be 9 bits The instrument can be removed from the screen. ==5385== Warning: noted but unhandled ioctl 0x5514 with no size/direction hints ==5385== This could cause spurious value errors to appear. ==5385== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==5385== ==5385== ERROR SUMMARY: 897 errors from 10 contexts (suppressed: 4 from 1) ==5385== malloc/free: in use at exit: 155,559 bytes in 413 blocks. ==5385== malloc/free: 2,765 allocs, 2,353 frees, 2,002,651 bytes allocated. ==5385== For counts of detected errors, rerun with: -v ==5385== searching for pointers to 413 not-freed blocks. ==5385== checked 11,278,248 bytes. ==5385== ==5385== LEAK SUMMARY: ==5385== definitely lost: 40,441 bytes in 37 blocks. ==5385== possibly lost: 272 bytes in 1 blocks. ==5385== still reachable: 114,846 bytes in 375 blocks. ==5385== suppressed: 0 bytes in 0 blocks. ==5385== Rerun with --leak-check=full to see details of leaked memory.