Projects

Ticket #79 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

NSObject#self segfaults

Reported by: kreatix@… Owned by: lsansonetti@…
Priority: blocker Milestone: MacRuby 0.3
Component: MacRuby Keywords:
Cc:

Description

$macirb
irb(main):001:0> Object.methods.include?(:self)
true
irb(main):002:0> Object.self
/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:302: [BUG] Segmentation fault
MacRuby version 0.3 (ruby 1.9.0 2008-06-03) [universal-darwin9.3]

-- stack frame ------------
0000 (0x30030): 00000004
0001 (0x30034): 00000001
0002 (0x30038): 00000004
0003 (0x3003c): 00000001
0004 (0x30040): 00000004
0005 (0x30044): 00000001
0006 (0x30048): 0135ec70
0007 (0x3004c): 0193f340
0008 (0x30050): 019cea30
0009 (0x30054): 00000004
0010 (0x30058): 01743820
0011 (0x3005c): 00000004
0012 (0x30060): 0029250e
0013 (0x30064): 00000004
0014 (0x30068): 000aff65
0015 (0x3006c): 00000004
0016 (0x30070): 0174384d
0017 (0x30074): 019cea30
0018 (0x30078): 00000004
0019 (0x3007c): 01743510
0020 (0x30080): 01388640
0021 (0x30084): 00000004
0022 (0x30088): 000afe85
0023 (0x3008c): 00000004
0024 (0x30090): 0034f50e
0025 (0x30094): 00000004
0026 (0x30098): 000afe4d
0027 (0x3009c): 00000004
0028 (0x300a0): 00030089 (= 22)
0029 (0x300a4): 00000004
0030 (0x300a8): 00000004
0031 (0x300ac): 000afda5
0032 (0x300b0): 0177a820
0033 (0x300b4): 00000004
0034 (0x300b8): 000300a1 (= 28)
0035 (0x300bc): 0133d780
0036 (0x300c0): 00000005
0037 (0x300c4): 00000004
0038 (0x300c8): 01743535
0039 (0x300cc): 00000004
0040 (0x300d0): 002a7d0e
0041 (0x300d4): 00298d0e
0042 (0x300d8): 00000004
0043 (0x300dc): 000afcc5
0044 (0x300e0): 00000004
0045 (0x300e4): 00000004
0046 (0x300e8): 00000004
0047 (0x300ec): 00000004
0048 (0x300f0): 00000004
0049 (0x300f4): 00000004
0050 (0x300f8): 00000004
0051 (0x300fc): 000300c9 (= 38)
0052 (0x30100): 00000004
0053 (0x30104): 00000004
0054 (0x30108): 00000001 <- lfp <- dfp
0055 (0x3010c): 00000004 <- bp
0056 (0x30110): 019403a0
0057 (0x30114): 004047e0
-- control frame ----------
c:0019 p:0033 s:0058 b:0055 l:000054 d:000054 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:302
c:0018 p:0042 s:0052 b:0052 l:000bc4 d:000051 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:150
c:0017 p:0025 s:0044 b:0044 l:000043 d:000043 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:263
c:0016 p:0009 s:0039 b:0039 l:000bc4 d:000038 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:146
c:0015 p:0093 s:0035 b:0035 l:000022 d:000034 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:243
c:0014 p:---- s:0034 b:0034 l:000033 d:000033 FINISH :block_given?
c:0013 p:---- s:0032 b:0032 l:000031 d:000031 CFUNC  :loop
c:0012 p:0007 s:0029 b:0029 l:000022 d:000028 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:230
c:0011 p:---- s:0029 b:0029 l:000028 d:000028 FINISH :each
c:0010 p:---- s:0027 b:0027 l:000026 d:000026 CFUNC  :catch
c:0009 p:0017 s:0023 b:0023 l:000022 d:000022 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229
c:0008 p:0034 s:0020 b:0020 l:000bc4 d:000bc4 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:145
c:0007 p:0009 s:0017 b:0017 l:000edc d:000016 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:69
c:0006 p:---- s:0017 b:0017 l:000016 d:000016 FINISH :(null)
c:0005 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC  :catch
c:0004 p:0152 s:0011 b:0011 l:000edc d:000edc METHOD /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:68
c:0003 p:0033 s:0006 b:0006 l:000005 d:000005 TOP    /usr/local/bin/macirb:12
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP    
---------------------------
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:302:in `output_value'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:150:in `block (2 levels) in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:263:in `signal_status'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:146:in `block in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:230:in `loop'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:230:in `block in each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229:in `catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229:in `each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:145:in `eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:69:in `block in start'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:68:in `catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/lib/ruby/1.9.0/irb.rb:68:in `start'"
DBG> : "/usr/local/bin/macirb:12:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x2b63d6
0x1df16c
0x1df1ab
0x270331
0x9665f09b
0xffffffff
0x2a1336
0x2a13a6
0x2a14a1
0x2abe77
0x2ad19b
0x2b3f2d
0x1e2899
0x2a1ce7
0x2a4df1
0x2a8ab8
0x2ad19b
0x2b1ee9
0x2a0f65
0x2a4df1
0x2a8ab8
0x2ad19b
0x2b1ee9
0x2a0f65
0x2a4df1
0x2a8ab8
0x2ad19b
0x2ad404
0x1e25c9
0x1e5380
0x1e8f
0x1df6
-------------------------------------------------------
[1]    852 abort      macirb

Change History

Changed 2 years ago by lsansonetti@…

  • milestone set to MacRuby 0.3

This seems to work for all objects... except classes/modules. Need to investigate, but perhaps #self should not be callable from Ruby after all.

Changed 2 years ago by lsansonetti@…

  • status changed from new to closed
  • resolution set to fixed

Fixed in trunk.

$ macruby -e "p NSObject.self"
Object
Note: See TracTickets for help on using tickets.