日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Qt调试技巧】Profile配置使用及一些坑

發(fā)布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Qt调试技巧】Profile配置使用及一些坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

不知從哪個版本起,Qt Creator中的構(gòu)建配置中,增加了一種新型配置,名叫“Profile”,如下圖所示:

官方對Profile的描述是:Profile是介于Debug和Release中間的一種配置。具體是什么意思呢?下表描述了三種配置的區(qū)別:

配置類型特點
Debug帶調(diào)試信息,編譯時不做優(yōu)化。
Profile帶調(diào)試信息,編譯時做一定優(yōu)化。
Release一般不帶調(diào)試信息,可以根據(jù)優(yōu)化選項做不同程度的優(yōu)化。

應用

那么應該在什么場景下使用Profile構(gòu)建配置呢?有以下幾種場景:

場景一

目前手頭只有Release版的軟件包,配置Debug版的軟件包很困難,比如找不到對應Debug版本的依賴庫。這種情況下,軟件出現(xiàn)問題,想要調(diào)試軟件怎么辦?讀過前面《掌握Qt調(diào)試技術(shù)》文章的同學應該知道,通用的方法是打印日志,如果可以調(diào)試就盡量調(diào)試。

顯然Release下是無法調(diào)試的。那么,我們就可以通過在Profile配置下構(gòu)建項目,Qt在qmake項目.pro文件時,會將Profile配置視作Release配置解析。使用Profile構(gòu)建會生成*.pdb調(diào)試信息文件,用于代碼調(diào)試。這樣既解決了依賴庫版本問題,又解決了Release無法調(diào)試的問題,一舉兩得。

場景二

開發(fā)的軟件比較龐大,由于Debug版本的軟件因為沒有經(jīng)過優(yōu)化,運行效率比較低,界面啟動速度慢,導致使用、調(diào)試起來很費時間。
如何解決這個問題呢?我們可以將程序構(gòu)建成Profile版本。使用Profile配置構(gòu)建的程序運行速度會提高,同時,在開發(fā)時也可以進行代碼調(diào)試。但是缺點是鏈接的動態(tài)庫必須要使用Release版的。

需要再次強調(diào),在Profile配置下,qmake在解析.pro文件時,會認為當前配置為Release,且相對于Debug配置,有:

  • 項目會使用Release開關(guān)中鏈接的Release版的動態(tài)庫及配置
  • 代碼中的斷言失效
  • 其他

總的來說,Profile就是Release,但是可以調(diào)試。一定要根據(jù)需求考慮周全再使用。

Debug和Release配置的具體區(qū)別將在后面的章節(jié)講解。

原理

Profile的原理是控制編譯選項。
Profile配置等于:Release模式下,開啟一般優(yōu)化選項,并生成調(diào)試信息。

問題

在Qt Creator中使用Profile會出現(xiàn)一些問題。Profile配置下構(gòu)建的程序,會經(jīng)常出現(xiàn):斷點打不上、調(diào)試變量值錯誤的問題,這是因為Profile配置有一定的優(yōu)化,導致某些代碼、變量在生成的exe中對應不起來了。這么看來Profile確實用起來很尷尬。之前我們也說過,在Qt的調(diào)試功能確實比不上VS,問題比較多。

使用Profile配置構(gòu)建程序,雖然可以獲得速度上的提升,但是調(diào)試功能受到了影響,如何解決這個問題呢?答案是關(guān)閉Profile優(yōu)化。

無優(yōu)化的Profile

通過在VS中指定編譯選項,可以實現(xiàn)比較好的、預期的Profile效果。將項目當前配置切換到Release下,并配置Release屬性頁。
首先關(guān)閉編譯器優(yōu)化,如下所示:

然后,配置生成調(diào)試信息,如下圖:

如此一來便可以實現(xiàn)我們沒有優(yōu)化的Profile。

那么我們?nèi)绾我赒t里實現(xiàn)沒有優(yōu)化的Profile呢?在.pro文件中添加以下指令:

QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -Od

用于告訴編譯器禁用優(yōu)化,這樣就可以使Profile像Debug一樣調(diào)試了。

結(jié)語

最近確實比較忙,廢話不多說。寫此文章時稍微有些倉促,如有錯誤疏漏懇請大家指出。

本文由微信公眾號“Qt未來工程師”原創(chuàng)發(fā)布。

總結(jié)

以上是生活随笔為你收集整理的【Qt调试技巧】Profile配置使用及一些坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。