While developing a long dtrace script; I seem to be tripping over a compiler bug. I can tickle the bug by using this in a predicate / self->thing_var != "" / one too many times. Although I use that exact construction many times. Changing the probe , or even providing an invalid probe does not change the crash. Commenting out the predicate saves the compile. Comparing self->var to an integer compiles ok, ( while not really making sense in the context). The compiler will segv when asked to produce the IR via 'dtrace -S -ls srcipt.dt' Efforts to reproduce the crash with a reduced dtrace file have been futile and the system is sufficiently custom that sharing the script may not be useful.
Has anyone else seen this crash? Has anyone noticed arbitrary size limit on dtrace scripts? [New LWP 103111] Core was generated by `dtrace -v -s drive-lifecycle.dt'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000000800cf5910 in strchr () from /lib/libc.so.7 Thread 1 (LWP 103111): #0 0x0000000800cf5910 in strchr () from /lib/libc.so.7 #1 0x000000080090999f in ctf_lookup_by_name (fp=<optimized out>, name=<optimized out>) at /usr/src/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c:138 #2 0x00000008006b8716 in dtrace_lookup_by_type (dtp=0x801644000, object=<optimized out>, name=0x803bc8010 "str", tip=<optimized out>) at /usr/src/cddl/contrib /opensolaris/lib/libdtrace/common/dt_module.c:1639 #3 0x000000080069c0ce in id_or_type (s=0x803bc8010 "str") at /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l:775 #4 0x00000008006ade05 in yyparse () at dt_grammar.c:1388 #5 0x00000008006a973f in dt_compile (dtp=<optimized out>, context=363, pspec=DTRACE_PROBESPEC_NAME, arg=0x0, cflags=0, argc=1, argv=0x80064c000, fp=<optimized out>, s=0x0) at /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c:2457 #6 0x00000008006aaf90 in dtrace_program_fcompile (dtp=0x803bc8fff, fp=0x803bc8010, cflags=114, argc=-2139062144, argv=0x3) at /usr/src/cddl/contrib/opensolari s/lib/libdtrace/common/dt_cc.c:2594 #7 0x000000000040493f in compile_file (dcp=0x801638180) at /usr/src/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:805 #8 0x000000000040311e in main (argc=4, argv=<optimized out>) at /usr/src/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c:1725 _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace To unsubscribe, send any mail to "[email protected]"
