From: Daniel J S. <dan...@ie...> - 2006-03-15 23:12:20
|
Well, I've got to hand it to valgrind. It found an uninitialized variable in the image demo. The problem was actually not the instruction valgrind pointed out, but a step or two back from that in a different routine. One has to sort of trace where the memory came from. So, attached is a short patch to fix what valgrind found. Below are a few other things that valgrind has found for 'all.dem'. If anything looks familiar to you as code you may have worked with, please take a look to see if there is a problem with the code. If not, attempt a change to rid the valgrind complaint. Thanks, Dan PS: The free-ing of the memory in reset_palette() has lessened the rate at which memory accumulates. There still seems to be a leak. I'll hunt for that later. ======================== c13 -0.141 0.028 -0.086 1.000 phi0 0.114 -0.022 0.034 0.181 1.000 ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x8060155: update (fit.c:989) ==1563== by 0x80542BA: update_command (command.c:1711) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== by 0x80885BA: load_file (misc.c:277) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x8060146: update (fit.c:989) ==1563== by 0x80542BA: update_command (command.c:1711) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== by 0x80885BA: load_file (misc.c:277) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x806014A: update (fit.c:989) ==1563== by 0x80542BA: update_command (command.c:1711) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== by 0x80885BA: load_file (misc.c:277) ******************** file world.dem ******************** Hit return to continue Hit return to continue Hit return to continue Hit return to continue ==1563== ==1563== Use of uninitialised value of size 8 [[[[[ Is it possible here Ethan that v[3] (of color = v[3];) is not being set inside df_readascii() of datafile.c but the value of j (output in datafile.c) is being incremented? ]]]]] ==1563== at 0x8099BD9: eval_3dplots (plot3d.c:775) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== by 0x80885BA: load_file (misc.c:277) ==1563== by 0x8053092: load_command (command.c:978) Same plot with hidden line removal ==1563== ==1563== Use of uninitialised value of size 8 ==1563== at 0x8099BD9: eval_3dplots (plot3d.c:775) ==1563== by 0x80544FB: replotrequest (command.c:1843) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== by 0x80885BA: load_file (misc.c:277) Now create a x/y datafile for plotting with vectors and display vectors parallel to the electrostatic field Hit return to continue ==1563== ==1563== Use of uninitialised value of size 8 ==1563== at 0x807778E: plot_vectors (graphics.c:3272) ==1563== by 0x807A8EA: do_plot (graphics.c:1760) ==1563== by 0x80932F1: eval_plots (plot2d.c:2181) ==1563== by 0x80551B3: do_line (command.c:530) ==1563== ==1563== Use of uninitialised value of size 8 ==1563== at 0x8077792: plot_vectors (graphics.c:3273) ==1563== by 0x807A8EA: do_plot (graphics.c:1760) ==1563== by 0x80932F1: eval_plots (plot2d.c:2181) ==1563== by 0x80551B3: do_line (command.c:530) Hit return to continue********************** file tics.dem ********************* Now try histograms stacked by columns Next we do several sets of parallel histograms ==1563== ==1563== Use of uninitialised value of size 4 ==1563== at 0x80A8E34: parse_label_options (set.c:4664) ==1563== by 0x80A9578: set_xyzlabel (set.c:4127) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x80A8F2A: parse_label_options (set.c:4730) ==1563== by 0x80A9578: set_xyzlabel (set.c:4127) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x80A9237: parse_label_options (set.c:4744) ==1563== by 0x80A9578: set_xyzlabel (set.c:4127) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x80A90B1: parse_label_options (set.c:4832) ==1563== by 0x80A9578: set_xyzlabel (set.c:4127) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) ==1563== ==1563== Use of uninitialised value of size 4 ==1563== at 0x80A8E34: parse_label_options (set.c:4664) ==1563== by 0x80A9591: set_xyzlabel (set.c:4143) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) ==1563== ==1563== Conditional jump or move depends on uninitialised value(s) ==1563== at 0x80A90B1: parse_label_options (set.c:4832) ==1563== by 0x80A9591: set_xyzlabel (set.c:4143) ==1563== by 0x80AAA85: set_style (set.c:4879) ==1563== by 0x80ADE33: set_command (set.c:418) Same plot using rowstacked histogram |