bcheck is broken since a year or longer, it only works for simple test
cases but not for applications like firefox or ksh.
On Opensolaris B134 I get this dump:

bcheck -V
bcheck : Sun Dbx Debugger 7.6 SunOS_i386 2007/05/03

bcheck -all /usr/bin/amd64/ksh -c 'print hello'
Reading ksh
Reading ld.so.1
Reading rtcapihook.so
Reading libc.so.1
Reading libdl.so.1
Reading rtcaudit.so
Reading libmapmalloc.so.1
Reading libgen.so.1
Reading libm.so.2
Reading rtcboot.so
Reading librtc.so
access checking - ON
memuse checking - ON
Running: ksh -c "print hello"
(process id 3861)
RTC: Enabling Error Checking...
RTC: Running program...
Reading disasm.so
terminating signal 11 SIGSEGV

pstack core
core 'core' of 3861:    /usr/bin/amd64/ksh -c print hello
 fffffd7fee6128a8 _ti_critical ()
 fffffd7fff3e3dda audit_symbind () + 42
 fffffd7fff3e059b elf_bndr () + 1e3
 fffffd7fff3c4f93 elf_rtbndr () + 83
 fffffd7fff380030 ???????? ()

Olga

On Tue, Apr 27, 2010 at 10:32 PM, Darryl Gove <darryl.g...@oracle.com> wrote:
> You might try discover
> http://cooltools.sunsource.net/discover/
> to test for memory access errors.
>
> Or runtime checking in dbx
> dbx bcheck -all <app> <params>
>
> Regards,
>
> Darryl.
>
> On 04/27/10 12:06, Jens Elkner wrote:
>>
>> Hi,
>>
>> I'm currently getting strange SEGVs from malloc on a UltraSPARC-IIIi
>> (V440)
>> (see below), no matter whether src is compiled with -m32 or -m64.
>> Especially
>> with -m64 and even -xmemalign=1i alignment errors seem to happen
>> frequently.
>> [Hmmm - 'til today I thought, at least 1i gets rid of all alignment errors
>> (Compiler is SS12u1).]
>>
>> Problem source is sendmails libmilter:
>>
>> http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sendmail/libmilter/engine.c
>>
>> http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sendmail/libmilter/comm.c
>>
>> t...@150 (l...@150) terminated by signal SEGV (no mapping at the fault 
>> address)
>> 0xff2570a8: t_splay+0x0010:     ld       [%o2 + 8], %o1
>> Current function is dec_argv
>>  1764           s = (char **)malloc((nelem + 1) * (sizeof *s));
>> (dbx) where
>>    current thread: t...@150
>>  [1] t_splay(0x85a04, 0x0, 0x1fffff, 0x85808, 0x0, 0xff337480), at
>> 0xff2570a8   [2] t_delete(0x85a04, 0x1fc, 0x1fffff, 0xff256f30, 0xff3303a8,
>> 0x0), at 0xff256f30   [3] realfree(0x85800, 0x1ff, 0xd98dc, 0x8b7a0, 0x0,
>> 0x8a768), at 0xff256b44   [4] cleanfree(0x0, 0xe, 0xd902c, 0x0, 0xff3303a8,
>> 0xff3392a4), at 0xff2573cc   [5] _malloc_unlocked(0x28, 0x0, 0x0, 0x0,
>> 0xfffffffc, 0x0), at 0xff256524   [6] malloc(0x24, 0x1, 0xd9fd8, 0x0,
>> 0xff3303a8, 0xff33a518), at 0xff256414 =>[7] dec_argv(buf = 0x88459 "i", len
>> = 68U), line 1764 in "engine.c"
>>  [8] st_macros(g = 0xfd6fbe90), line 1481 in "engine.c"
>>  [9] mi_engine(ctx = 0x81630), line 405 in "engine.c"
>>  [10] mi_handle_session(ctx = 0x81630), line 45 in "handler.c"
>>  [11] mi_thread_handle_wrapper(arg = 0x81630), line 579 in "listener.c"
>>
>>
>> t...@470 (l...@470) terminated by signal SEGV (no mapping at the fault 
>> address)
>> 0xff2570a8: t_splay+0x0010:     ld       [%o2 + 8], %o1
>> Current function is mi_rd_cmd
>>  143           buf = malloc(expl);
>> (dbx) where
>>    current thread: t...@470
>>  [1] t_splay(0x85f14, 0x7f730, 0x31313638, 0x841f8, 0x0, 0x0), at
>> 0xff2570a8   [2] t_delete(0x85f14, 0x1fc, 0x31313638, 0xff256f30,
>> 0xff3303a8, 0x61696c5f), at 0xff256f30   [3] realfree(0x85d10, 0x1ff,
>> 0xd98dc, 0x82c48, 0x0, 0x85d50), at 0xff256b44   [4] cleanfree(0x0, 0xd,
>> 0xd902c, 0x0, 0xff3303a8, 0xff3392a4), at 0xff2573cc   [5]
>> _malloc_unlocked(0x8, 0xb0, 0x80550, 0x80558, 0xffffffff, 0x0), at
>> 0xff256524   [6] malloc(0x1, 0x1, 0xd9fd8, 0xff2baaec, 0xff3303a8,
>> 0xff33a518), at 0xff256414 =>[7] mi_rd_cmd(sd = 13, timeout = 0xfe3fbe88,
>> cmd = 0xfe3fbea7 "D\xff\xff\xff\xfe", rlen = 0xfe3fbec8, name = 0x65730
>> "ClamAV"), line 143 in "comm.c"
>>  [8] mi_engine(ctx = 0x84350), line 315 in "engine.c"
>>  [9] mi_handle_session(ctx = 0x84350), line 45 in "handler.c"
>>  [10] mi_thread_handle_wrapper(arg = 0x84350), line 579 in "listener.c"
>>
>>
>> Is anybody able to spot, what's going wrong here?
>> Thanx,
>> jel.
>>
>> "OT": Problem with mail filters, which use libmilter is, that they die
>>      more or less frequently and thus their results (if any) are ignored
>> by
>>      sendmail. Good thing is, that SMF takes care to restart the
>>      filter, however those filters are more or less unreliable since they
>>      do a ~ 90:10 job, only ... :(
>
> --
> Darryl Gove
> Compiler Performance Engineering
> Blog : http://blogs.sun.com/d/
> Books: http://www.sun.com/books/catalog/solaris_app_programming.xml
>       http://my.safaribooksonline.com/0595352510
> _______________________________________________
> opensolaris-code mailing list
> opensolaris-code@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     olga.kryzhanov...@gmail.com   \-`\-'----.
 `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
      /\/\                                     /\/\
      `--`                                      `--`
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to