On 9/14/2019 12:11 PM, Fred Smith wrote:

Hi all!

I’m new to this list, but have used Valgrind many times in the past.

Today I’m making a serious effort to clean up a non-trivial body of code, and have run into a number of error reports like this one:

==00:00:00:11.329 1533== Conditional jump or move depends on uninitialised value(s)

==00:00:00:11.329 1533==    at 0x7B0BCC2: ttci2n (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7B20DF5: ttcacs (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7AF2503: ttcdrv (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7AE14C8: nioqwa (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7AC35CB: upirtrc (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7ACDDE5: kpurcsc (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7AC710D: kpuexec (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x7AC3F78: OCIStmtExecute (in /home/interface/interface/oralib-12/lib/libclntsh.so.12.1)

==00:00:00:11.329 1533==    by 0x45078D: HS_do_OCI_stuff (HS_oci.c:1460)

==00:00:00:11.329 1533==    by 0x407DA0: HS_send2HS (HS_thr_out.c:261)

==00:00:00:11.329 1533==    by 0x4083BB: HS_convertandsend (HS_thr_out.c:468)

==00:00:00:11.329 1533==    by 0x40884E: HS_out_msg (HS_thr_out.c:629)

==00:00:00:11.329 1533==    by 0x40913C: HS_out_main (HS_thr_out.c:933)

==00:00:00:11.329 1533==    by 0x409797: HS_main_out (HS_thr_out.c:1172)

==00:00:00:11.329 1533==    by 0x9C50DD4: start_thread (pthread_create.c:307)

==00:00:00:11.329 1533==  Uninitialised value was created by a stack allocation

==00:00:00:11.329 1533==    at 0x407C67: HS_send2HS (HS_thr_out.c:231)

==00:00:00:11.329 1533==

The problem with that report is that line 231 contains no explicit code:

static HS_IF_STATE HS_send2HS (HS_out_thread * myoutthr,

                                HS_MSGBUF * msgbuf,

                                HS_IF_PARMS * ifparms,

                                xmlChar * xmlbufptr,

                                char * HS_resp,

                                HS_patdat * patdat,

                                char * databuf)

{ ç line 231

                HS_IF_STATE status = OK;

                int success, warnings;

                int numtries = 0

I can’t find anything that’s allocated in that function that would be un-initialized later in the program, and I don’t know what it thinks is on line 231.

Advice will be appreciated, thanks in advance!


The allocation is probably in the function's stack frame, which would be set up at function entry.  The compiler probably assigned line 231 to that task.  I see line 261 in your call stack; what local variables does it use?

--
    David Chapman      dcchap...@acm.org
    Chapman Consulting -- San Jose, CA
    EDA Software Developer, Expert Witness
    www.chapman-consulting-sj.com
    2018-2019 Chair, IEEE Consultants' Network of Silicon Valley

_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to