facebook / chisel

Chisel is a collection of LLDB commands to assist debugging iOS apps.
MIT License
9.1k stars 804 forks source link

pivar and wivar can not be used. #182

Open hecomzhangzhiguo opened 7 years ago

hecomzhangzhiguo commented 7 years ago

(lldb) pivar self _view error: error: call to unavailable function 'object_getInstanceVariable': not available in automatic reference counting mode error: no matching function for call to 'ivar_getTypeEncoding' note: candidate function has been explicitly made unavailable note: candidate function not viable: cannot convert argument of incomplete type 'void ' to 'Ivar' (aka 'objc_ivar ') error: 2 errors parsing 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/FBPrintCommands.py", line 293, in run result = fb.evaluateExpressionValue('(({} *)({}))->{}'.format(printCommand, objectClass, object, ivarName)) NameError: global name 'printCommand' is not defined

kastiglione commented 7 years ago

Thanks for the report. This might be related to #180. I'll try to put together a fix.

hecomzhangzhiguo commented 7 years ago

Thanks.

kos9kus commented 7 years ago

The same problem 0x610000222360 - instance address

pivar 0x610000222360 _tableView
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/FBPrintCommands.py", line 293, in run
    result = fb.evaluateExpressionValue('(({} *)({}))->{}'.format(printCommand, objectClass, object, ivarName))
NameError: global name 'printCommand' is not defined

error Sample code:

@interface MyClass : NSObject <NSObject>

@property (nonatomic) UITableView *tableView;

@end