簡體   English   中英

在WinCacheGrind中打開CacheGrind文件時缺少函數名稱

[英]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)

查看Webgrind圖像

我發現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.

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