mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-06-12 09:09:02 +08:00
add builtin commands (pro, pri)
This commit is contained in:
@@ -9,15 +9,15 @@ task :files do
|
||||
end
|
||||
|
||||
task :deploy do
|
||||
if !File.exist?('deploy') or File.mtime('deploy.m') > File.mtime('deploy')
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -mmacosx-version-min=10.6 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -I./src -std=c99 -Wall -O3 deploy.m -o deploy -framework Foundation"
|
||||
if !File.exist?('deploy') or File.mtime('deploy.m') > File.mtime('deploy') or File.mtime('builtin_debugger_cmds.h') > File.mtime('deploy')
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -mmacosx-version-min=10.6 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -I./src -std=c99 -Wall -O3 deploy.m -o deploy -framework Foundation -I."
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -x deploy"
|
||||
end
|
||||
end
|
||||
|
||||
task :sim do
|
||||
if !File.exist?('sim') or File.mtime('sim.m') > File.mtime('sim')
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -mmacosx-version-min=10.6 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -I./src -std=c99 -Wall -O3 sim.m -o sim -framework Foundation -framework ApplicationServices -ledit"
|
||||
if !File.exist?('sim') or File.mtime('sim.m') > File.mtime('sim') or File.mtime('builtin_debugger_cmds.h') > File.mtime('sim')
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -mmacosx-version-min=10.6 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -I./src -std=c99 -Wall -O3 sim.m -o sim -framework Foundation -framework ApplicationServices -ledit -I."
|
||||
sh "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -x sim"
|
||||
end
|
||||
end
|
||||
|
||||
31
bin/builtin_debugger_cmds.h
Normal file
31
bin/builtin_debugger_cmds.h
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
#define cmd_pro ""\
|
||||
"if $argc != 1\n"\
|
||||
"help print-ruby-object\n"\
|
||||
"else\n"\
|
||||
"po rb_inspect($arg0)\n"\
|
||||
"end\n"
|
||||
|
||||
#define cmd_pri ""\
|
||||
"if $argc == 1\n"\
|
||||
"po rb_inspect((void *)rb_ivar_get(self, (void *)rb_intern($arg0)))\n" \
|
||||
"else\n"\
|
||||
"if $argc == 2\n"\
|
||||
"po rb_inspect((void *)rb_ivar_get($arg0, (void *)rb_intern($arg1)))\n" \
|
||||
"else\n"\
|
||||
"help print-ruby-ivar\n"\
|
||||
"end\n"\
|
||||
"end\n"
|
||||
|
||||
#define BUILTIN_DEBUGGER_CMDS ""\
|
||||
"define print-ruby-object\n" cmd_pro "end\n"\
|
||||
"define pro\n" cmd_pro "end\n"\
|
||||
"document print-ruby-object\n"\
|
||||
"print-ruby-object(obj): inspects the given 'obj'\n"\
|
||||
"end\n"\
|
||||
"define print-ruby-ivar\n" cmd_pri "end\n"\
|
||||
"define pri\n" cmd_pri "end\n"\
|
||||
"document print-ruby-ivar\n"\
|
||||
"print-ruby-ivar(name): inspects the given instance variable 'name' on self\n"\
|
||||
"print-ruby-ivar(rcv, name): inspects the given instance variable 'name' on 'rcv'\n"\
|
||||
"end\n"
|
||||
15
bin/deploy.m
15
bin/deploy.m
@@ -1,5 +1,6 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <dlfcn.h>
|
||||
#include "builtin_debugger_cmds.h"
|
||||
|
||||
typedef void *am_device_t;
|
||||
typedef void *afc_conn_t;
|
||||
@@ -477,14 +478,22 @@ start_debugger(am_device_t dev)
|
||||
"set inferior-auto-start-dyld 1\n"\
|
||||
"set inferior-auto-start-cfm off\n"\
|
||||
"set sharedLibrary load-rules dyld \".*libobjc.*\" all dyld \".*CoreFoundation.*\" all dyld \".*Foundation.*\" all dyld \".*libSystem.*\" all dyld \".*AppKit.*\" all dyld \".*PBGDBIntrospectionSupport.*\" all dyld \".*/usr/lib/dyld.*\" all dyld \".*CarbonDataFormatters.*\" all dyld \".*libauto.*\" all dyld \".*CFDataFormatters.*\" all dyld \"/System/Library/Frameworks\\\\\\\\|/System/Library/PrivateFrameworks\\\\\\\\|/usr/lib\" extern dyld \".*\" all exec \".*\" all\n"\
|
||||
"sharedlibrary apply-load-rules all\n"\
|
||||
"break rb_exc_raise\n"\
|
||||
"continue\n",
|
||||
"sharedlibrary apply-load-rules all\n",
|
||||
device_support_path, device_support_path, device_support_path,
|
||||
[[app_remote_path stringByDeletingLastPathComponent]
|
||||
stringByReplacingOccurrencesOfString:@"/private/var"
|
||||
withString:@"/var"], [app_path stringByDeletingLastPathComponent],
|
||||
app_remote_path, gdb_unix_socket_path, app_path, dsym_path];
|
||||
cmds = [cmds stringByAppendingFormat:@"%s\n", BUILTIN_DEBUGGER_CMDS];
|
||||
NSString *user_cmds = [NSString stringWithContentsOfFile:
|
||||
@"debugger_cmds" encoding:NSUTF8StringEncoding error:nil];
|
||||
if (user_cmds != nil) {
|
||||
cmds = [cmds stringByAppendingString:user_cmds];
|
||||
cmds = [cmds stringByAppendingString:@"\n"];
|
||||
}
|
||||
if (getenv("no_continue") == NULL) {
|
||||
cmds = [cmds stringByAppendingString:@"continue\n"];
|
||||
}
|
||||
assert([cmds writeToFile:cmds_path atomically:YES
|
||||
encoding:NSASCIIStringEncoding error:nil]);
|
||||
|
||||
|
||||
15
bin/sim.m
15
bin/sim.m
@@ -12,6 +12,8 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
|
||||
#include "builtin_debugger_cmds.h"
|
||||
|
||||
@interface Delegate : NSObject
|
||||
- (NSString *)replEval:(NSString *)expression;
|
||||
@end
|
||||
@@ -799,7 +801,18 @@ again:
|
||||
[NSArray arrayWithObjects:NSTemporaryDirectory(), @"_simgdbcmds",
|
||||
nil]];
|
||||
//if (![[NSFileManager defaultManager] fileExistsAtPath:cmds_path]) {
|
||||
NSString *cmds = @"set breakpoint pending on\nbreak rb_exc_raise\nbreak malloc_error_break\n";
|
||||
NSString *cmds = @""\
|
||||
"set breakpoint pending on\n"\
|
||||
"break rb_exc_raise\n"\
|
||||
"break malloc_error_break\n";
|
||||
cmds = [cmds stringByAppendingFormat:@"%s\n",
|
||||
BUILTIN_DEBUGGER_CMDS];
|
||||
NSString *user_cmds = [NSString stringWithContentsOfFile:
|
||||
@"debugger_cmds" encoding:NSUTF8StringEncoding error:nil];
|
||||
if (user_cmds != nil) {
|
||||
cmds = [cmds stringByAppendingString:user_cmds];
|
||||
cmds = [cmds stringByAppendingString:@"\n"];
|
||||
}
|
||||
if (getenv("no_continue") == NULL) {
|
||||
cmds = [cmds stringByAppendingString:@"continue\n"];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user