[英]Missing function names when opening CacheGrind file in WinCacheGrind
地獄全部。 我在一個apache / php服務器上安裝了XDEBUG作為ZEND模塊。 它輸出分析文件,但輸出不包含函數名稱,只包含數字。
我看起來不像其他cachegrind輸出文件。 我的文件有數字而不是函數/文件名。
如果我嘗試使用WinCacheGrind打開文件,則會出錯。 我也安裝了webgrind,輸出只顯示數字。 有時會有文件名,但文件名前面有一個數字。 單擊它會導致錯誤。
版本:1創建者:xdebug 2.3.2 cmd:/backup/united/public_html/member.php部分:1個職位:行
事件:時間
fl=(1) php:internal
fn=(1) php::define
7 5
fl=(1)
fn=(1)
51 3
fl=(1)
fn=(1)
52 1
fl=(1)
fn=(1)
53 1
fl=(1)
fn=(1)
54 1
fl=(1)
fn=(1)
55 1
fl=(1)
fn=(1)
57 1
fl=(1)
我發現Xdebug 2.3.2有一種與webgrind和其他可視化工具不兼容的新格式。 這就是可視化不包含函數名稱的原因。
但它與QCacheGrind 0.7.4兼容我安裝它並發現Web服務器性能不佳的根源。
由於XDebug 2.3復制的文件和函數名稱已被數字替換以節省一些空間,因此請確保您的cachegrind格式支持“文件名”和“函數名”壓縮。
請參閱: 在XDebug上分析PHP腳本
Windows用戶也可以使用WinCacheGrind。 該功能與KCacheGrind不同,因此在此頁面上記錄使用KCacheGrind的部分不適用於此程序。 WinCacheGrind目前不支持Xdebug 2.3引入的cachegrind文件的文件和函數壓縮。
有關名稱壓縮的更多詳細信息,請查看Callgrind格式規范 。 以下是一些簡要介紹:
隨着諸如調用之類的關聯規范的引入,需要多次指定相同的功能或相同的文件名。 由於C ++中的絕對文件名或符號名稱可能很長,因此能夠為位置規范指定整數ID是有利的。 這里,術語“位置”對應於文件名(源或目標文件)或函數名稱。
為了支持名稱壓縮,位置規范不僅可以是“
spec=name
”格式,還可以是“spec=(ID) name
”來指定整數ID到名稱的映射,並且“spec=(ID)
“引用先前定義的ID映射。 每個位置規范都有一個單獨的ID映射,即您可以將ID 1用於文件名和符號名。
還要檢查這些錯誤報告的狀態:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.