簡體   English   中英

Qt 4.8.7記憶偽像

[英]Qt 4.8.7 memory artefacts

我需要使用Qt 4.8.7 for Embedded Linux創建一個非常簡單的項目進行測試。 項目包括2種形式-對話框(由QTextEdit和按鈕組成。按鈕清除QTextEdit和QClipboard)和MainWindow(由執行Dialog的按鈕組成)。

我編輯文本,復制其中的一部分。 然后清除編輯器和剪貼板。 之后,我無法粘貼文本,但是我使用gcore轉儲了內存,並看到了我復制的文本(HTML格式的多個副本)。 這些對象留在內存中是什么? 這些是臨時對象還是內存泄漏? 或者我使用不正確的東西。

如果您已經擁有的核心是某個基於x86的平台上Linux的基於ELF的核心,並且您的進程使用了​​libc malloc,那么了解這些對象是什么(臨時對象或泄漏)的一種方法是使用免費的開放源代碼軟件https: //github.com/vmware/chap找出答案 建立好章后,就可以這樣開始:

核心文件名

然后,要回答您的特定問題,請在chap提示符下發出以下命令:

重定向到

顯示泄漏

顯示錨定

免費顯示

然后在3個結果文本文件中的每個文件中查找您在核心中看到的模式。 如果在“顯示泄漏”的輸出中看到該模式,則表明存在泄漏。 如果在“顯示錨定”的輸出中看到該對象,則該對象很可能保存在某個容器中,但仍有泄漏的可能。 如果在“ show free”的輸出中看到它,則它是從臨時分配中釋放的。

另外,如果您已經知道該模式的虛擬地址並想了解它的用法,那么在開始對給定內核進行chap之后,您可以使用以下命令:

描述十六進制虛擬地址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM