Skip to content

Instantly share code, notes, and snippets.

@jer
Created September 29, 2014 05:50
Show Gist options
  • Save jer/882015c81a39984f107a to your computer and use it in GitHub Desktop.
Save jer/882015c81a39984f107a to your computer and use it in GitHub Desktop.
Valgrind before fix
> cat test.rb
require 'chess'
game = Chess::Game.new
puts game.to_s
> valgrind --partial-loads-ok=yes --undef-value-errors=no ruby test.rb
==55403== Memcheck, a memory error detector
==55403== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==55403== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==55403== Command: ruby test.rb
==55403==
--55403-- /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby:
--55403-- dSYM directory is missing; consider using --dsymutil=yes
UNKNOWN __pthread_sigmask is unsupported. This warning will not be repeated.
==55403== Warning: ignored attempt to set SIGUSR2 handler in sigaction();
==55403== the SIGUSR2 signal is used internally by Valgrind
--55403-- /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle:
--55403-- dSYM directory is missing; consider using --dsymutil=yes
==55403== Invalid write of size 1
==55403== at 0xAC21E4: vsprintf_l (in /usr/lib/system/libsystem_c.dylib)
==55403== by 0xAEFD4A: __sprintf_chk (in /usr/lib/system/libsystem_c.dylib)
==55403== by 0xD31E9B: print_board (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0xD346BC: game_to_s (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0x1002E8B4A: vm_call_cfunc (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002E848F: vm_call_method (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002D1D34: vm_exec_core (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DEFCE: vm_exec (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DFEB7: rb_iseq_eval_main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA9C3: ruby_exec_internal (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA8ED: ruby_run_node (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x100000C8E: main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== Address 0x101d43fda is 0 bytes after a block of size 250 alloc'd
==55403== at 0x66CB: malloc (in /usr/local/Cellar/valgrind/3.10.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==55403== by 0xD31CA0: print_board (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0xD346BC: game_to_s (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0x1002E8B4A: vm_call_cfunc (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002E848F: vm_call_method (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002D1D34: vm_exec_core (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DEFCE: vm_exec (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DFEB7: rb_iseq_eval_main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA9C3: ruby_exec_internal (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA8ED: ruby_run_node (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x100000C8E: main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403==
==55403== Invalid read of size 1
==55403== at 0x7E9A: strlen (in /usr/local/Cellar/valgrind/3.10.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==55403== by 0x100280B15: rb_str_new_cstr (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0xD346C7: game_to_s (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0x1002E8B4A: vm_call_cfunc (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002E848F: vm_call_method (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002D1D34: vm_exec_core (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DEFCE: vm_exec (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DFEB7: rb_iseq_eval_main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA9C3: ruby_exec_internal (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA8ED: ruby_run_node (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x100000C8E: main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== Address 0x101d43fda is 0 bytes after a block of size 250 alloc'd
==55403== at 0x66CB: malloc (in /usr/local/Cellar/valgrind/3.10.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==55403== by 0xD31CA0: print_board (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0xD346BC: game_to_s (in /Users/jer/.rvm/gems/ruby-2.1.0/gems/chess-0.0.4/ext/chess.bundle)
==55403== by 0x1002E8B4A: vm_call_cfunc (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002E848F: vm_call_method (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002D1D34: vm_exec_core (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DEFCE: vm_exec (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1002DFEB7: rb_iseq_eval_main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA9C3: ruby_exec_internal (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x1001BA8ED: ruby_run_node (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403== by 0x100000C8E: main (in /Users/jer/.rvm/rubies/ruby-2.1.0/bin/ruby)
==55403==
8 r n b q k b n r
7 p p p p p p p p
6 . . . . . . . .
5 . . . . . . . .
4 . . . . . . . .
3 . . . . . . . .
2 P P P P P P P P
1 R N B Q K B N R
a b c d e f g h
==55403==
==55403== HEAP SUMMARY:
==55403== in use at exit: 2,542,639 bytes in 29,078 blocks
==55403== total heap usage: 67,756 allocs, 38,678 frees, 15,090,786 bytes allocated
==55403==
==55403== LEAK SUMMARY:
==55403== definitely lost: 239,980 bytes in 1,556 blocks
==55403== indirectly lost: 641,892 bytes in 11,924 blocks
==55403== possibly lost: 951,081 bytes in 4,519 blocks
==55403== still reachable: 673,794 bytes in 10,702 blocks
==55403== suppressed: 35,892 bytes in 377 blocks
==55403== Rerun with --leak-check=full to see details of leaked memory
==55403==
==55403== For counts of detected and suppressed errors, rerun with: -v
==55403== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment