Skip to content

Instantly share code, notes, and snippets.

@RX14
Last active August 29, 2015 14:28
Show Gist options
  • Save RX14/2970b38c0f9cd5458f59 to your computer and use it in GitHub Desktop.
Save RX14/2970b38c0f9cd5458f59 to your computer and use it in GitHub Desktop.
Crystal segfault
Program received signal SIGSEGV, Segmentation fault.
0x08067886 in *Pointer(UInt8)@Pointer(T)#[]<Pointer(UInt8), Int32>:UInt8 ()
(gdb) bt
#0 0x08067886 in *Pointer(UInt8)@Pointer(T)#[]<Pointer(UInt8), Int32>:UInt8 ()
#1 0x080630ae in *String#unsafe_byte_at<String, Int32>:UInt8 ()
#2 0x080799c8 in *CharReader#byte_at<CharReader, Int32>:UInt32 ()
#3 0x080795eb in *CharReader#decode_current_char<CharReader>:Char ()
#4 0x0807959d in *CharReader#initialize<CharReader, String>:Char ()
#5 0x0807951e in *CharReader::new<String>:CharReader ()
#6 0x0806578e in *String#inspect<String, String::Builder>:String::Builder ()
#7 0x080656e8 in *String@Object#inspect<String>:String ()
#8 0x08083c49 in *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder ()
#9 0x08083ac8 in *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String ()
#10 0x080802f6 in *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder ()
#11 0x0807ffe8 in *FastIrc::Message@Object#inspect<FastIrc::Message>:String ()
#12 0x08086d2a in *Spec::EqualExpectation(FastIrc::Message)@Spec::EqualExpectation(T)#failure_message<Spec::EqualExpectation(FastIrc::Message)>:String ()
#13 0x0807f337 in *FastIrc::Message@Spec::ObjectExtensions#should<FastIrc::Message, Spec::EqualExpectation(FastIrc::Message), String, Int32>:Nil ()
#14 0x0805004c in __crystal_main ()
#15 0x0805a7fb in main ()
$ valgrind .crystal/crystal-run-spec.tmp
==16120== Memcheck, a memory error detector
==16120== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==16120== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==16120== Command: .crystal/crystal-run-spec.tmp
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x41944CC: GC_push_all_eager (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4195446: GC_push_current_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4190D3E: GC_with_callee_saves_pushed (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41957CD: GC_push_regs_and_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419589D: GC_push_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4194A75: GC_mark_some (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418A44D: GC_stopped_mark (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418AED7: GC_try_to_collect_inner (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41972AD: GC_init (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x8061CB3: *GC::init:Void (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A783: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x41944D2: GC_push_all_eager (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4195446: GC_push_current_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4190D3E: GC_with_callee_saves_pushed (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41957CD: GC_push_regs_and_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419589D: GC_push_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4194A75: GC_mark_some (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418A44D: GC_stopped_mark (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418AED7: GC_try_to_collect_inner (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41972AD: GC_init (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x8061CB3: *GC::init:Void (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A783: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x41944CC: GC_push_all_eager (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419450B: GC_push_all_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4195742: GC_push_all_stack_sections (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419E839: GC_push_all_stacks (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4198173: GC_default_push_other_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41958AE: GC_push_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4194A75: GC_mark_some (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418A44D: GC_stopped_mark (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418AED7: GC_try_to_collect_inner (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41972AD: GC_init (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x8061CB3: *GC::init:Void (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A783: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x41944D2: GC_push_all_eager (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419450B: GC_push_all_stack (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4195742: GC_push_all_stack_sections (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x419E839: GC_push_all_stacks (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4198173: GC_default_push_other_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41958AE: GC_push_roots (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x4194A75: GC_mark_some (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418A44D: GC_stopped_mark (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x418AED7: GC_try_to_collect_inner (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x41972AD: GC_init (in /usr/lib/libgc.so.1.0.3)
==16120== by 0x8061CB3: *GC::init:Void (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A783: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x808238A: *FastIrc::Prefix#target<FastIrc::Prefix>:String? (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083B5D: *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083AC7: *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80802F5: *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807FFE7: *FastIrc::Message@Object#inspect<FastIrc::Message>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8086D29: *Spec::EqualExpectation(FastIrc::Message)@Spec::EqualExpectation(T)#failure_message<Spec::EqualExpectation(FastIrc::Message)>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807F336: *FastIrc::Message@Spec::ObjectExtensions#should<FastIrc::Message, Spec::EqualExpectation(FastIrc::Message), String, Int32>:Nil (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805004B: __crystal_main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A7FA: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Conditional jump or move depends on uninitialised value(s)
==16120== at 0x8083B7C: *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083AC7: *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80802F5: *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807FFE7: *FastIrc::Message@Object#inspect<FastIrc::Message>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8086D29: *Spec::EqualExpectation(FastIrc::Message)@Spec::EqualExpectation(T)#failure_message<Spec::EqualExpectation(FastIrc::Message)>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807F336: *FastIrc::Message@Spec::ObjectExtensions#should<FastIrc::Message, Spec::EqualExpectation(FastIrc::Message), String, Int32>:Nil (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805004B: __crystal_main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x805A7FA: main (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Use of uninitialised value of size 4
==16120== at 0x8067886: *Pointer(UInt8)@Pointer(T)#[]<Pointer(UInt8), Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80630AD: *String#unsafe_byte_at<String, Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80799C7: *CharReader#byte_at<CharReader, Int32>:UInt32 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80795EA: *CharReader#decode_current_char<CharReader>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807959C: *CharReader#initialize<CharReader, String>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807951D: *CharReader::new<String>:CharReader (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x806578D: *String#inspect<String, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80656E7: *String@Object#inspect<String>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083C48: *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083AC7: *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80802F5: *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807FFE7: *FastIrc::Message@Object#inspect<FastIrc::Message>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120==
==16120== Invalid read of size 1
==16120== at 0x8067886: *Pointer(UInt8)@Pointer(T)#[]<Pointer(UInt8), Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80630AD: *String#unsafe_byte_at<String, Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80799C7: *CharReader#byte_at<CharReader, Int32>:UInt32 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80795EA: *CharReader#decode_current_char<CharReader>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807959C: *CharReader#initialize<CharReader, String>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807951D: *CharReader::new<String>:CharReader (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x806578D: *String#inspect<String, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80656E7: *String@Object#inspect<String>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083C48: *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083AC7: *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80802F5: *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807FFE7: *FastIrc::Message@Object#inspect<FastIrc::Message>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== Address 0x16 is not stack'd, malloc'd or (recently) free'd
==16120==
==16120==
==16120== Process terminating with default action of signal 11 (SIGSEGV)
==16120== Access not within mapped region at address 0x16
==16120== at 0x8067886: *Pointer(UInt8)@Pointer(T)#[]<Pointer(UInt8), Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80630AD: *String#unsafe_byte_at<String, Int32>:UInt8 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80799C7: *CharReader#byte_at<CharReader, Int32>:UInt32 (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80795EA: *CharReader#decode_current_char<CharReader>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807959C: *CharReader#initialize<CharReader, String>:Char (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807951D: *CharReader::new<String>:CharReader (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x806578D: *String#inspect<String, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80656E7: *String@Object#inspect<String>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083C48: *FastIrc::Prefix#inspect<FastIrc::Prefix, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x8083AC7: *FastIrc::Prefix@Object#inspect<FastIrc::Prefix>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x80802F5: *FastIrc::Message#inspect<FastIrc::Message, String::Builder>:String::Builder (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== by 0x807FFE7: *FastIrc::Message@Object#inspect<FastIrc::Message>:String (in /data/programming/fast-irc.cr/.crystal/crystal-run-spec.tmp)
==16120== If you believe this happened as a result of a stack
==16120== overflow in your program's main thread (unlikely but
==16120== possible), you can try to increase the size of the
==16120== main thread stack using the --main-stacksize= flag.
==16120== The main thread stack size used in this run was 8388608.
==16120==
==16120== HEAP SUMMARY:
==16120== in use at exit: 5,548 bytes in 10 blocks
==16120== total heap usage: 14 allocs, 4 frees, 6,064 bytes allocated
==16120==
==16120== LEAK SUMMARY:
==16120== definitely lost: 0 bytes in 0 blocks
==16120== indirectly lost: 0 bytes in 0 blocks
==16120== possibly lost: 0 bytes in 0 blocks
==16120== still reachable: 5,548 bytes in 10 blocks
==16120== suppressed: 0 bytes in 0 blocks
==16120== Rerun with --leak-check=full to see details of leaked memory
==16120==
==16120== For counts of detected and suppressed errors, rerun with: -v
==16120== Use --track-origins=yes to see where uninitialised values come from
==16120== ERROR SUMMARY: 238 errors from 8 contexts (suppressed: 0 from 0)
[1] 16120 segmentation fault (core dumped) valgrind .crystal/crystal-run-spec.tmp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment