tracing while constructing binary segfaults emulator

Paul Mineiro paul-trapexit@REDACTED
Thu Aug 20 06:21:16 CEST 2009


this is r12b5, happens on both my mac os/x and my ubuntu 32 bit hardy.
the exact number of calls to random_binaries before the problem exhibits
is variable.

cheers,

-- p

----------

-module (crash).
-export ([ random_binaries/1 ]).

random_binary () ->
  << <<($a + random:uniform ($z - $a)):8>> || _ <- lists:seq (1, 10) >>.

random_binaries (N) when N > 0 ->
  random_binary (),
  random_binaries (N - 1);
random_binaries (_) ->
  ok.

----------

% erl
Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] [kernel-poll:false]
Eshell V5.6.5  (abort with ^G)
1> c (crash), dbg:tracer (), dbg:p (all, [ call ]), dbg:tpl (crash, dbg:fun2ms (fun (_) -> return_trace () end)), crash:random_binaries (1000).
(<0.31.0>) call crash:random_binaries(1000)
(<0.31.0>) call crash:random_binary()
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([1,2,3,4,5,6,7,8,9,10],<<>>
)
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([2,3,4,5,6,7,8,9,10],<<"d">
>)

...

(<0.31.0>) returned from crash:random_binary/0 -> <<"hulbjkedwk">>
(<0.31.0>) call crash:random_binaries(938)
(<0.31.0>) call crash:random_binary()
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([1,2,3,4,5,6,7,8,9,10],<<>>)
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([2,3,4,5,6,7,8,9,10],<<0>>)
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([3,4,5,6,7,8,9,10],<<0,0>>)
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([4,5,6,7,8,9,10],<<0,0,0>>)
(<0.31.0>) call crash:'-random_binary/0-lbc$^0/2-0-'([5,6,7,8,9,10],<<0,0,0,0>>)
zsh: segmentation fault (core dumped)  erl
% gdb /usr/lib/erlang/erts-5.6.5/bin/beam core.20527
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(no debugging symbols found)

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/tls/i686/cmov/libutil.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libutil.so.1
Reading symbols from /lib/tls/i686/cmov/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2
Reading symbols from /lib/tls/i686/cmov/libm.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /lib/libncurses.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/libncurses.so.5
Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
Reading symbols from /lib/tls/i686/cmov/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/librt.so.1
Reading symbols from /lib/tls/i686/cmov/libc.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/libsctp.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsctp.so.1
(no debugging symbols found)
Core was generated by `/usr/lib/erlang/erts-5.6.5/bin/beam -- -root /usr/lib/erlang -progname erl -- -'.
Program terminated with signal 11, Segmentation fault.
[New process 20527]
[New process 20531]
#0  0x080788e8 in ?? ()
(gdb) bt
#0  0x080788e8 in ?? ()
#1  0x0807230c in ?? ()
#2  0x0807462b in erts_alcu_alloc_ts ()
#3  0x080beb52 in new_binary ()
#4  0x080bed35 in list_to_binary_1 ()
#5  0x080fe13c in process_main ()
#6  0x0807c504 in erl_start ()
#7  0x08067492 in main ()
(gdb) q

--------------



More information about the erlang-bugs mailing list