facebook / facebook/chisel

pproperties command needs ObjC runtime

未关闭
#180 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
9.2k
派生
790
PR 合并指标
30 天内没有已合并 PR

描述

1.5.0

Was trying to use `pproperties`:

```python
(lldb) pproperties $imageView
error: error: unknown type name 'objc_property_t'
error: use of undeclared identifier 'objc_property_t'
error: expected expression
error: unknown type name 'objc_property_attribute_t'
error: use of undeclared identifier 'objc_property_attribute_t'
error: expected expression
error: error: unknown type name 'objc_property_t'
error: use of undeclared identifier 'objc_property_t'
error: expected expression
error: unknown type name 'objc_property_attribute_t'
error: use of undeclared identifier 'objc_property_attribute_t'
error: expected expression
Traceback (most recent call last):
File "/usr/local/opt/chisel/libexec/fblldb.py", line 83, in runCommand
command.run(args, options)
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 69, in run
printProperties(cls)
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 187, in printProperties
props = getProperties(cls)
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 326, in getProperties
return [Property(m) for m in propsJson]
TypeError: 'NoneType' object is not iterable
```

After importing the ObjectiveC runtime:

```python
(lldb) e @import ObjectiveC.runtime;
(lldb) pproperties $imageView
error: error: no matching function for call to 'object_getClass'
candidate function not viable: no known conversion from 'long' to '__strong id' for 1st argument
error: error: use of undeclared identifier 'None'
Traceback (most recent call last):
File "/usr/local/opt/chisel/libexec/fblldb.py", line 83, in runCommand
command.run(args, options)
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 67, in run
cls = getClassFromArgument(arguments[0], options.clsname)
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 167, in getClassFromArgument
if not isClassObject(cls):
File "/usr/local/Cellar/chisel/1.5.0/libexec/commands/FBClassDump.py", line 156, in isClassObject
return runtimeHelpers.class_isMetaClass(runtimeHelpers.object_getClass(arg))
File "/usr/local/opt/chisel/libexec/fblldbobjcruntimehelpers.py", line 37, in class_isMetaClass
return fb.evaluateBooleanExpression(command)
File "/usr/local/opt/chisel/libexec/fblldbbase.py", line 84, in evaluateBooleanExpression
return (int(evaluateIntegerExpression('(BOOL)(' + expression + ')', printErrors)) != 0)
File "/usr/local/opt/chisel/libexec/fblldbbase.py", line 76, in evaluateIntegerExpression
output = evaluateExpression('(int)(' + expression + ')', printErrors).replace('\'', '')
AttributeError: 'NoneType' object has no attribute 'replace'
```

Not sure what else is wrong, but shouldn't `pproperties` import the runtime if it uses it?

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。