Remove two pieces of identical code used by Memcheck and Addrcheck, and put

them in a shared place.  (They used to be different, when Addrcheck didn't
distinguish between reads and writes, but now they're the same.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1837
This commit is contained in:
Nicholas Nethercote 2003-09-26 14:55:31 +00:00
parent 21175aa99b
commit f8762eb55d
3 changed files with 21 additions and 42 deletions

View File

@ -52,27 +52,6 @@ void SK_(pp_SkinError) ( Error* err )
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
break;
case AddrErr:
switch (err_extra->axskind) {
case ReadAxs:
VG_(message)(Vg_UserMsg, "Invalid read of size %d",
err_extra->size );
break;
case WriteAxs:
VG_(message)(Vg_UserMsg, "Invalid write of size %d",
err_extra->size );
break;
case ExecAxs:
VG_(message)(Vg_UserMsg, "Jump to the invalid address "
"stated on the next line");
break;
default:
VG_(skin_panic)("SK_(pp_SkinError)(axskind)");
}
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addrinfo);
break;
case ParamErr:
VG_(message)(Vg_UserMsg,
"Syscall param %s contains unaddressable byte(s)",

View File

@ -287,6 +287,27 @@ void MAC_(pp_shared_SkinError) ( Error* err )
MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addrinfo);
break;
case AddrErr:
switch (err_extra->axskind) {
case ReadAxs:
VG_(message)(Vg_UserMsg, "Invalid read of size %d",
err_extra->size );
break;
case WriteAxs:
VG_(message)(Vg_UserMsg, "Invalid write of size %d",
err_extra->size );
break;
case ExecAxs:
VG_(message)(Vg_UserMsg, "Jump to the invalid address "
"stated on the next line");
break;
default:
VG_(skin_panic)("SK_(pp_SkinError)(axskind)");
}
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addrinfo);
break;
case OverlapErr: {
OverlapExtra* ov_extra = (OverlapExtra*)VG_(get_error_extra)(err);
if (ov_extra->len == -1)

View File

@ -65,27 +65,6 @@ void SK_(pp_SkinError) ( Error* err )
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
break;
case AddrErr:
switch (err_extra->axskind) {
case ReadAxs:
VG_(message)(Vg_UserMsg, "Invalid read of size %d",
err_extra->size );
break;
case WriteAxs:
VG_(message)(Vg_UserMsg, "Invalid write of size %d",
err_extra->size );
break;
case ExecAxs:
VG_(message)(Vg_UserMsg, "Jump to the invalid address "
"stated on the next line");
break;
default:
VG_(skin_panic)("SK_(pp_SkinError)(axskind)");
}
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
MAC_(pp_AddrInfo)(VG_(get_error_address)(err), &err_extra->addrinfo);
break;
case ParamErr:
if (err_extra->isWrite) {
VG_(message)(Vg_UserMsg,