1
我在我的一個Objective-C項目中使用了JavaScriptCore,並且我想隨時知道什麼是當前文件&當陷入JS回調。沒有記錄的API和標題
沒有辦法與public headers做到這一點,所以我把一看sources,似乎可以通過使用一些C++代碼訪問文件&線。
// ctx is a JSContextRef, that's the only type I have an access to
JSC::JSValue jsCtx = toJS(ctx);
CodeBlock* codeBlock = jsCtx->codeBlock();
// Line
unsigned sourceOffset = codeBlock->sourceOffset();
// Source URL
SourceProvider* sourceProvider = codeBlock->source();
const String& url = sourceProvider->url();
它顯然需要的JSC
,JSValue
,CodeBlock
,並且SourceProvider
的定義。我把所有這些放在單獨的標題中,但它確實很龐大。
- 我應該直接包含這些頭文件嗎?
- 如果這些文件需要其他頭文件怎麼辦?我可能會有多個頭,我不會使用。
- 讓我們忘記內部源代碼可能會改變:我甚至想做甚麼?
感謝Sunil,但我想隨時獲得堆棧跟蹤,不僅在發生異常之後。所以當一個本地C函數被綁定到JS上下文中並且調用了這個函數時,我想知道什麼時候調用了它。 –
我明白你的意思了。 –