【发布时间】:2013-05-18 03:11:56
【问题描述】:
我在我的一个 Objective-C 项目中使用 JavaScriptCore,我想随时知道当陷入 JS 回调时,当前文件和行是什么。
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的定义。我将所有这些都放在单独的标题中,但它确实很大。
- 我应该直接包含这些标题吗?
- 如果这些文件需要其他头文件怎么办?最后可能会有多个我不会使用的标题。
- 让我们忘记内部源代码可能会发生变化:我想要做的甚至可能吗?
【问题讨论】:
标签: c++ objective-c header webkit javascriptcore