gpt4 book ai didi

debugging - Valgrind 显示错误指向 Qt 的源文件,而不是我的源文件 - 从中​​可以得出什么结论?

转载 作者:行者123 更新时间:2023-12-02 22:48:17 29 4
gpt4 key购买 nike

valgrind --leak-check=full -v离线

结果:

--6491-- Reading syms from /home/.../offline/offline (0x400000)
--6491-- Reading syms from /lib64/ld-2.11.3.so (0x4000000)
--6491-- Reading syms from /usr/lib64/valgrind/memcheck-amd64-linux (0x38000000)
--6491-- object doesn't have a symbol table
--6491-- object doesn't have a dynamic symbol table
--6491-- Reading suppressions file: /usr/lib64/valgrind/default.supp
--6491-- REDIR: 0x4015fc0 (strlen) redirected to 0x38042017 (???)
--6491-- Reading syms from /usr/lib64/valgrind/vgpreload_core-amd64-linux.so (0x4a20000)
--6491-- object doesn't have a symbol table
--6491-- Reading syms from /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so (0x4c22000)
--6491-- object doesn't have a symbol table
==6491== WARNING: new redirection conflicts with existing -- ignoring it
--6491-- new: 0x04015fc0 (strlen ) R-> 0x04c26ee0 strlen
--6491-- REDIR: 0x4015f10 (index) redirected to 0x4c26b40 (index)
--6491-- REDIR: 0x4015f90 (strcmp) redirected to 0x4c274e0 (strcmp)
--6491-- Reading syms from /usr/lib64/R/lib/libR.so (0x4e2c000)
--6491-- Reading syms from /usr/lib64/R/lib/libRblas.so (0x543b000)
--6491-- Reading syms from /usr/lib64/R/lib/libRlapack.so (0x5667000)
--6491-- Reading syms from /usr/lib64/R/library/Rcpp/lib/libRcpp.so (0x59e1000)
--6491-- Reading syms from /usr/lib64/R/library/RInside/lib/libRInside.so (0x5c2e000)
--6491-- Reading syms from /home/anisha/qtsdk-2010.05/qt/lib/libQtGui.so.4.7.0 (0x5e43000)
--6491-- Reading syms from /home/anisha/qtsdk-2010.05/qt/lib/libQtCore.so.4.7.0 (0x6bc0000)
--6491-- Reading syms from /lib64/libpthread-2.11.3.so (0x70a3000)
--6491-- Reading syms from /usr/lib64/libstdc++.so.6.0.14 (0x72c0000)
--6491-- object doesn't have a symbol table
--6491-- Reading syms from /lib64/libm-2.11.3.so (0x75c9000)
--6491-- Reading syms from /lib64/libgcc_s.so.1 (0x7820000)
--6491-- Considering /usr/lib/debug/.build-id/e6/eb8011838a065946e5808e036550844548379f.debug ..
--6491-- .. build-id is valid
--6491-- Reading syms from /lib64/libc-2.11.3.so (0x7a36000)
--6491-- Reading syms from /lib64/libreadline.so.6.1 (0x7da3000)
--6491-- object doesn't have a symbol table
--6491-- Reading syms from /lib64/librt-2.11.3.so (0x7fea000)
--6491-- Reading syms from /lib64/libdl-2.11.3.so (0x81f3000)
--6491-- Reading syms from /usr/lib64/libgomp.so.1.0.0 (0x83f7000)



==6491== 5 errors in context 13 of 34:
==6491== Conditional jump or move depends on uninitialised value(s)
==6491== at 0x611629E: QHash<unsigned int, int>::findNode(unsigned int const&, unsigned int*) const (../include/QtCore/../../src/corelib/tools/qhash.h:884)
==6491== by 0x62E9AC6: QTextFormatCollection::indexForFormat(QTextFormat const&) (../include/QtCore/../../src/corelib/tools/qhash.h:865)
==6491== by 0x62E9E51: QTextFormatCollection::createObjectIndex(QTextFormat const&) (/var/tmp/qt-src/src/gui/text/qtextformat.cpp:3142)
==6491== by 0x62FF56E: QTextDocumentPrivate::createObject(QTextFormat const&, int) (/var/tmp/qt-src/src/gui/text/qtextdocument_p.cpp:1588)
==6491== by 0x62FFD57: QTextDocumentPrivate::rootFrame() const (/var/tmp/qt-src/src/gui/text/qtextdocument_p.cpp:1407)
==6491== by 0x63203B0: QTextDocumentLayout::doLayout(int, int, int) (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:2908)
==6491== by 0x632051C: QTextDocumentLayoutPrivate::ensureLayoutedByPosition(int) const (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:3076)
==6491== by 0x6320978: QTextDocumentLayoutPrivate::layoutStep() const (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:3082)
==6491== by 0x632123C: QTextDocumentLayout::documentChanged(int, int, int) (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:2874)
==6491== by 0x62EF7D3: QTextDocument::documentLayout() const (/var/tmp/qt-src/src/gui/text/qtextdocument.cpp:1070)
==6491== by 0x62C0D36: QTextControlPrivate::_q_documentLayoutChanged() (/var/tmp/qt-src/src/gui/text/qtextcontrol.cpp:624)
==6491== by 0x62C104E: QTextControlPrivate::setContent(Qt::TextFormat, QString const&, QTextDocument*) (/var/tmp/qt-src/src/gui/text/qtextcontrol.cpp:434)


==6491== 3 errors in context 10 of 34:
==6491== Use of uninitialised value of size 8
==6491== at 0x6116276: QHash<unsigned int, int>::findNode(unsigned int const&, unsigned int*) const (../include/QtCore/../../src/corelib/tools/qhash.h:884)
==6491== by 0x62E9AC6: QTextFormatCollection::indexForFormat(QTextFormat const&) (../include/QtCore/../../src/corelib/tools/qhash.h:865)
==6491== by 0x62E9E51: QTextFormatCollection::createObjectIndex(QTextFormat const&) (/var/tmp/qt-src/src/gui/text/qtextformat.cpp:3142)
==6491== by 0x62FF56E: QTextDocumentPrivate::createObject(QTextFormat const&, int) (/var/tmp/qt-src/src/gui/text/qtextdocument_p.cpp:1588)
==6491== by 0x62FFD57: QTextDocumentPrivate::rootFrame() const (/var/tmp/qt-src/src/gui/text/qtextdocument_p.cpp:1407)
==6491== by 0x63203B0: QTextDocumentLayout::doLayout(int, int, int) (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:2908)
==6491== by 0x632051C: QTextDocumentLayoutPrivate::ensureLayoutedByPosition(int) const (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:3076)
==6491== by 0x6320978: QTextDocumentLayoutPrivate::layoutStep() const (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:3082)
==6491== by 0x632123C: QTextDocumentLayout::documentChanged(int, int, int) (/var/tmp/qt-src/src/gui/text/qtextdocumentlayout.cpp:2874)
==6491== by 0x62EF7D3: QTextDocument::documentLayout() const (/var/tmp/qt-src/src/gui/text/qtextdocument.cpp:1070)
==6491== by 0x62C0D36: QTextControlPrivate::_q_documentLayoutChanged() (/var/tmp/qt-src/src/gui/text/qtextcontrol.cpp:624)
==6491== by 0x62C104E: QTextControlPrivate::setContent(Qt::TextFormat, QString const&, QTextDocument*) (/var/tmp/qt-src/src/gui/text/qtextcontrol.cpp:434)

==6491== 错误摘要:来自 34 个上下文的 52 个错误(已抑制:8 个中的 18 个)

这些错误均未指向我的源文件。
我需要担心吗?

Makefile 由 qmake 自动生成。
它确实包含-Wall。

CC = gcc
CXX = g++
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS = -m64 -pipe -O2 -Wall -g -pedantic -W -D_REENTRANT $(DEFINES)

Make 不会向我显示任何警告。

最佳答案

以下选项帮助我获得了一些提示(来自 Valgrind 手册页的文本):

  • --num-callers

Specifies the maximum number of entries shown in stack traces that identify program locations. Note that errors are commoned up using only the top four function locations (the place in the current function, and that of its three immediate callers). So this doesn´t affect the total number of errors reported.

The maximum value for this is 50. Note that higher settings will make Valgrind run a bit more slowly and take a bit more memory, but can be useful when working with programs with deeply-nested call chains.

  • --完整路径后

By default Valgrind only shows the filenames in stack traces, but not full paths to source files. When using Valgrind in large projects where the sources reside in multiple different directories, this can be inconvenient. --fullpath-after provides a flexible solution to this problem. When this option is present, the path to each source file is shown,

  • --track-origins=yes

Controls whether Memcheck tracks the origin of uninitialised values. By default, it does not, which means that although it can tell you that an uninitialised value is being used in a dangerous way, it cannot tell you where the uninitialised value came from. This often makes it difficult to track down the root problem.

关于debugging - Valgrind 显示错误指向 Qt 的源文件,而不是我的源文件 - 从中​​可以得出什么结论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13719080/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com