2011-08-05 17 views
0

我通過WinDbg分析Chrome的內存地址空間。 就像我對其他進程做的那樣,我需要提取當前在內存中分配的所有字符串。Javascript字符串是如何在Chrome中編碼的?

要做到這一點,我使用的WinDbg作爲一種非侵入性的調試器和命令

s -u 0x0 L?0xffffffff "string" 

如果unicode的,

s -a 0x0 L?0xffffffff "string" 

如果ASCI。

但是,它看起來像我想念所有分配爲JavaScript字符串對象的字符串。這讓我認爲在V8(chrome引擎)中編碼是不同的,因此我的搜索字符串的字節表示也不同。

有關它如何工作的任何想法?我已經深入瞭解V8文檔了一段時間,但沒有任何結果:(

+0

這是一個總猜測(這不是我的專業領域),但Chrome並不專門爲每個頁面的js運行時生成單獨的進程?即字符串可能會顯示在Chrome中產生一個進程的記憶,而不是Chrome本身 – Flambino

+0

是的,但我在同一時間檢查它的所有進程:) – ostefano

回答

1

V8中的字符串並不總是作爲一系列字符存儲的,它們也可以作爲ConsString類似Lisp存儲。您可以檢查在V8 sources中使用的實際C++結構。

+0

這是有道理的...謝謝你的指針:) – ostefano

相關問題