On core dump, print debug suggestions.
This commit is contained in:
parent
f99bd33f91
commit
aba25aab19
2
Changes
2
Changes
|
|
@ -9,6 +9,8 @@ indicates the contributor was also the author of the fix; Thanks!
|
||||||
|
|
||||||
**** Increase define recursions before error. [Paul Liu]
|
**** Increase define recursions before error. [Paul Liu]
|
||||||
|
|
||||||
|
**** On core dump, print debug suggestions.
|
||||||
|
|
||||||
* Verilator 3.803 2010/07/10
|
* Verilator 3.803 2010/07/10
|
||||||
|
|
||||||
*** Fix preprocessor preservation of newlines across macro substitutions.
|
*** Fix preprocessor preservation of newlines across macro substitutions.
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,15 @@ sub run {
|
||||||
warn "%Error: export VERILATOR_ROOT=".($ENV{VERILATOR_ROOT}||"")."\n";
|
warn "%Error: export VERILATOR_ROOT=".($ENV{VERILATOR_ROOT}||"")."\n";
|
||||||
warn "%Error: $command\n";
|
warn "%Error: $command\n";
|
||||||
}
|
}
|
||||||
|
if ($status & 255) {
|
||||||
|
if (($status & 255) == 8 || ($status & 255) == 11) { # SIGFPA or SIGSEGV
|
||||||
|
warn "%Error: Verilator internal fault, sorry. Consider trying --debug --gdbbt\n" if !$Debug;
|
||||||
|
} elsif (($status & 255) == 6) { # SIGABRT
|
||||||
|
warn "%Error: Verilator aborted. Consider trying --debug --gdbbt\n" if !$Debug;
|
||||||
|
} else {
|
||||||
|
warn "%Error: Verilator threw signal $status. Consider trying --debug --gdbbt\n" if !$Debug;
|
||||||
|
}
|
||||||
|
}
|
||||||
die "%Error: Command Failed $command\n";
|
die "%Error: Command Failed $command\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -614,7 +614,9 @@ void V3Options::parseOptsList(FileLine* fl, int argc, char** argv) {
|
||||||
else if ( onoff (sw, "-coverage-underscore", flag/*ref*/) ){ m_coverageUnderscore = flag; }
|
else if ( onoff (sw, "-coverage-underscore", flag/*ref*/) ){ m_coverageUnderscore = flag; }
|
||||||
else if ( onoff (sw, "-coverage-user", flag/*ref*/) ){ m_coverageUser = flag; }
|
else if ( onoff (sw, "-coverage-user", flag/*ref*/) ){ m_coverageUser = flag; }
|
||||||
else if ( onoff (sw, "-covsp", flag/*ref*/) ) { } // TBD
|
else if ( onoff (sw, "-covsp", flag/*ref*/) ) { } // TBD
|
||||||
|
else if ( !strcmp (sw, "-debug-abort") ) { abort(); } // Undocumented, see also --debug-core-dump
|
||||||
else if ( onoff (sw, "-debug-check", flag/*ref*/) ){ m_debugCheck = flag; }
|
else if ( onoff (sw, "-debug-check", flag/*ref*/) ){ m_debugCheck = flag; }
|
||||||
|
else if ( !strcmp (sw, "-debug-core-dump") ) { char* zp=NULL; *zp=0; } // Undocumented, see also --debug-abort
|
||||||
else if ( onoff (sw, "-dump-tree", flag/*ref*/) ) { m_dumpTree = flag; }
|
else if ( onoff (sw, "-dump-tree", flag/*ref*/) ) { m_dumpTree = flag; }
|
||||||
else if ( onoff (sw, "-exe", flag/*ref*/) ) { m_exe = flag; }
|
else if ( onoff (sw, "-exe", flag/*ref*/) ) { m_exe = flag; }
|
||||||
else if ( onoff (sw, "-ignc", flag/*ref*/) ) { m_ignc = flag; }
|
else if ( onoff (sw, "-ignc", flag/*ref*/) ) { m_ignc = flag; }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
|
||||||
|
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
|
||||||
|
#
|
||||||
|
# Copyright 2003 by Wilson Snyder. This program is free software; you can
|
||||||
|
# redistribute it and/or modify it under the terms of either the GNU
|
||||||
|
# Lesser General Public License Version 3 or the Perl Artistic License
|
||||||
|
# Version 2.0.
|
||||||
|
|
||||||
|
$Self->{vlt} or $Self->skip("Verilator only test");
|
||||||
|
|
||||||
|
compile (
|
||||||
|
v_flags2 => ["--debug-core-dump"],
|
||||||
|
fails=>$Self->{v3},
|
||||||
|
expect=>
|
||||||
|
'%Error: Verilator internal fault, sorry. Consider trying --debug --gdbbt
|
||||||
|
%Error: Command Failed.*',
|
||||||
|
);
|
||||||
|
|
||||||
|
ok(1);
|
||||||
|
1;
|
||||||
Loading…
Reference in New Issue