[MacRuby-devel] Segfault on NSSet from Ruby Array

Daniel A Carleton daniel.carleton at exaptic.com
Fri Oct 31 12:14:31 PDT 2008


Hello List,

Am I right in thinking the below statement should create an NSSet
containing the NSStrings "foo" and "bar"?  Even if not the segfault
seems like a bug.

>> s = NSSet.setWithObjects(["foo","bar"])
(irb):3: [BUG] Segmentation fault
MacRuby version 0.4 (ruby 1.9.0 2008-06-03) [universal-darwin9.0]

-- stack frame ------------
0000 (0x690030): 00000004
0001 (0x690034): 00000000
0002 (0x690038): 00000004
0003 (0x69003c): 00000000
0004 (0x690040): 00000004
0005 (0x690044): 00000000
0006 (0x690048): 0047c310
0007 (0x69004c): 010f7230
0008 (0x690050): 0131dc70
0009 (0x690054): 00000004
0010 (0x690058): 010f96e0
0011 (0x69005c): 00000004
0012 (0x690060): 00478aa0
0013 (0x690064): 00000004
0014 (0x690068): 0070ff64
0015 (0x69006c): 00000004
0016 (0x690070): 010c45cc
0017 (0x690074): 0131dc70
0018 (0x690078): 00000004
0019 (0x69007c): 010f8a70
0020 (0x690080): 010a1030
0021 (0x690084): 00000004
0022 (0x690088): 0070fe84
0023 (0x69008c): 00000004
0024 (0x690090): 00485550
0025 (0x690094): 00000004
0026 (0x690098): 0070fe4c
0027 (0x69009c): 00000004
0028 (0x6900a0): 00690088 (= 22)
0029 (0x6900a4): 00000004
0030 (0x6900a8): 00000004
0031 (0x6900ac): 0070fda4
0032 (0x6900b0): 01395470
0033 (0x6900b4): 00000004
0034 (0x6900b8): 006900a0 (= 28)
0035 (0x6900bc): 01334b10
0036 (0x6900c0): 00000007
0037 (0x6900c4): 00000004
0038 (0x6900c8): 010244c4
0039 (0x6900cc): 00000004
0040 (0x6900d0): 00479340
0041 (0x6900d4): 00478d30
0042 (0x6900d8): 00000004
0043 (0x6900dc): 0070fcc4
0044 (0x6900e0): 00000004
0045 (0x6900e4): 00000004
0046 (0x6900e8): 00000004
0047 (0x6900ec): 00000004
0048 (0x6900f0): 00000004
0049 (0x6900f4): 00000004
0050 (0x6900f8): 00000004
0051 (0x6900fc): 006900c8 (= 38)
0052 (0x690100): 01090040
0053 (0x690104): 01334b10
0054 (0x690108): 00000007
0055 (0x69010c): 00000004
0056 (0x690110): 00000000
0057 (0x690114): 00000004
0058 (0x690118): 0131aca0
0059 (0x69011c): 01090040
0060 (0x690120): 01334b10
0061 (0x690124): 010dc260
0062 (0x690128): 00000007
0063 (0x69012c): 00000004
0064 (0x690130): 00000000
0065 (0x690134): 00000004
0066 (0x690138): 01334b10
0067 (0x69013c): 010c4dc0
0068 (0x690140): 010dc260
0069 (0x690144): 00000007
0070 (0x690148): 00000004
0071 (0x69014c): 00000000
0072 (0x690150): 00000004
0073 (0x690154): 00000000
0074 (0x690158): 00000004
0075 (0x69015c): 01394d00
0076 (0x690160): a05f7ec0
0077 (0x690164): 013942f0
0078 (0x690168): 00000004
0079 (0x69016c): 00000000 <- lfp <- dfp
-- control frame ----------
c:0024 p:---- s:0080 b:0080 l:000079 d:000079 CFUNC  :setWithObjects
c:0023 p:0019 s:0076 b:0076 l:002274 d:0009f4 EVAL   (irb):3
c:0022 p:---- s:0074 b:0074 l:000073 d:000073 FINISH :empty?
c:0021 p:---- s:0072 b:0072 l:000071 d:000071 CFUNC  :eval
c:0020 p:0023 s:0065 b:0065 l:000064 d:000064 METHOD
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/workspace.rb:80
c:0019 p:0025 s:0058 b:0057 l:000056 d:000056 METHOD
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/context.rb:218
c:0018 p:0024 s:0052 b:0052 l:001704 d:000051 BLOCK
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:149
c:0017 p:0025 s:0044 b:0044 l:000043 d:000043 METHOD
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:263
c:0016 p:0009 s:0039 b:0039 l:001704 d:000038 BLOCK
/Library/Frameworks/MacRuby.framework/Versions/0.4/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.4/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.4/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.4/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229
c:0008 p:0034 s:0020 b:0020 l:001704 d:001704 METHOD
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:145
c:0007 p:0009 s:0017 b:0017 l:0005ec d:000016 BLOCK
/Library/Frameworks/MacRuby.framework/Versions/0.4/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:0147 s:0011 b:0011 l:0005ec d:0005ec METHOD
/Library/Frameworks/MacRuby.framework/Versions/0.4/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> : "(irb):3:in `setWithObjects'"
DBG> : "(irb):3:in `irb_binding'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/workspace.rb:80:in
`eval'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/workspace.rb:80:in
`evaluate'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/context.rb:218:in
`evaluate'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:149:in
`block (2 levels) in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:263:in
`signal_status'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:146:in
`block in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/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.4/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:230:in
`loop'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/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.4/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229:in
`catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb/ruby-lex.rb:229:in
`each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:145:in
`eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:69:in
`block in start'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.0/irb.rb:68:in
`catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/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) --
0x2dd036
0x1fa3bc
0x1fa3fb
0x2917a1
0x90f5009b
0xffffffff
0x948729be
0x94873e38
0x948742a3
0x948f55f1
0x948f7b36
0x93a2f1dd
0x93a2f771
0x2edf56
0x2d8463
0x2cb76c
0x2d2d5b
0x2d376e
0x2d3e01
0x2d3f4a
0x2c5935
0x2d80bf
0x2cb76c
0x2d2d5b
0x2dbe7d
0x1fdb49
0x2c5d37
0x2d80bf
0x2cb76c
0x2d2d5b
0x2d9f0b
0x2c5935
0x2d80bf
0x2cb76c
0x2d2d5b
0x2d9f0b
0x2c5935
0x2d80bf
0x2cb76c
0x2d2d5b
0x2d2fbe
0x1fd869
0x2008c0
0x1e8f
0x1df6
0x2

Is there something I can install to produce more readable traces?

Thanks,

- Daniel


More information about the MacRuby-devel mailing list