我正在使用valgrind调试Fortran 90程序。我在跟踪中遇到错误
==93929== Use of uninitialised value of size 4
==93929== at 0x7C3D4B: for__add_to_lf_table
==93929== by 0x8014A8: for__open_proc.
==93929== by 0x7C7B0F: for__open_default
==93929== by 0x7F3648: for_write_seq_lis
<rest of my application backtrace>
我不明白这是我的错误还是仅仅是内部库的怪癖。我想知道这些功能的作用以及任何其他相关信息。
我正在使用ifort(IFORT)11.1 20100806,在macosx上编译valgrind 3.6.0。
编辑:当使用associated(ptr)
内在函数或使用print *
时,我能够发现valgrind错误的出现。无论如何,我只是想知道这些例程的责任。什么是lf表?
答案 0 :(得分:0)
我的猜测是名称以for_
开头的符号是在程序使用的运行时库中定义的,可能是随英特尔编译器提供的。我希望你能为自己想出斯蒂法诺。除了显而易见之外,他们所做的事情是模糊不清的:实施Fortran的各种操作。
你做了什么来追踪错误的起源,这使得valgrind抱怨你使用了未初始化的值?您是否尝试使用选项-check uninit
进行编译?您是否在代码上尝试过英特尔源代码检查程序?
.true.
或.false.
。这可能是您问题的根源,尽管您报告的其他症状并未指明这一点。