2013-07-16 31 views
6

在Eclipse中,調試器在每個對象旁邊顯示唯一的會話ID(對於Java和AS3,無論如何)。這使識別出現在多個上下文中的相同對象變得很簡單。可能知道兩個對象在Chrome調試器中是否相同?

我正在開發一個JavaScript項目,並希望能夠在Chrome調試器中識別對象(例如,在「範圍變量」窗格中)。這些信息是由瀏覽器/調試器跟蹤的嗎?是否有不同的方法來識別跨上下文的對象,而無需添加代碼(這是一種純粹的IDE方法,適用於任何上下文)。

+0

Per @ beefeather的回答,我提交了一個Chromium功能請求:h ttps://code.google.com/p/chromium/issues/detail?id = 263116 – ericsoco

回答

0

JavaScript沒有內存地址。 「相同的變量」可以使用三重等號符號進行比較(anObjectReference === anotherObjectReference

+0

對象必須存儲在內存中。 Chrome調試器是否可以訪問虛擬機的內存地址是另一個問題。 – ericsoco

+2

'==='運算符不會比較標識,而是數值和類型。 –

+0

@PiotrDobrogost如果類型或值不同,那麼身份也會不同。否則:(引用MDN)*對於除數字之外的所有值,它使用明顯的語義:一個值僅等於它自己*。因此,對於它可以肯定地用於檢查身份平等。 – herman

2

從技術上講,這是可能的。如果您使用 Chrome開發工具for Java(基於Eclipse的調試器),您可能已經可以看到它。 http://code.google.com/p/chromedevtools

對於瀏覽器內部的調試器,UI僅僅缺乏對此的UI。我想你應該在此提交功能請求: http://crbug.com

P.S.請注意,這不是一個地址 - Java和JavaScript隨機時間將其對象移動到內存中。

+0

基於一些Google搜索,看起來你對Eclipse調試器中的id不是內存地址是正確的。我將編輯我的問題,但基本前提仍然是......並感謝Chromium功能/錯誤報告鏈接。 – ericsoco

1

我相信這是可能使用Chrome開發者工具是:

  1. 以一個堆快照和開放的控制檯,而在摘要視圖
  2. 打印對象在控制檯
  3. 右鍵點擊控制檯輸出並選擇「顯示在摘要視圖」(如果你沒有看到這個選項很可能你沒有打開配置文件面板)
相關問題