In v7trap.c, the case S_BREAK body is wrong:
< i=0; break;
---
> i=sarg1; break;
since (in V6 at least) the break system
call does not return anything -- it leaves r0
untouched. If break zeros r0, then db mysteriously
fails to load the symbols from binaries.
/* v7trap.c - Deal with V7 trap instructions. V5 and V6 syscalls are also
* done here, because the syscall interface is nearly the same as V7.
*
- * $Revision: 1.49 $
- * $Date: 2008/05/19 13:24:35 $
+ * $Revision: 1.50 $
+ * $Date: 2008/05/19 13:45:58 $
*/
#include "defines.h"
#include <sys/stat.h>
case S_LOCK:
case S_STIME:
case S_BREAK:
- i=0; break;
+ i=sarg1; break;
case S_SYNC:
sync(); i=0; break;