1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/* +++begin copyright+++ ******************************************* */
/* */
/* COPYRIGHT (c) 1997, 1998 Stratus Computer, Inc. */
/* */
/* This program is free software; you can redistribute it and/or */
/* modify it under the terms of either: */
/* */
/* a) the GNU General Public License as published by the Free */
/* Software Foundation; either version 1, or (at your option) any */
/* later version, or */
/* */
/* b) the "Artistic License" which comes with this Kit. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either */
/* the GNU General Public License or the Artistic License for more */
/* details. */
/* */
/* You should have received a copy of the Artistic License with this */
/* Kit, in the file named "Artistic". If not, you can get one from */
/* the Perl distribution. */
/* */
/* You should also have received a copy of the GNU General Public */
/* License along with this program; if not, you can get one from */
/* the Perl distribution or else write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA */
/* 02111-1307, USA. */
/* */
/* +++end copyright+++ ********************************************* */
#define _POSIX_C_SOURCE
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
extern void s$stop_program (char_varying (256) *command_line,
short int *error_code);
extern void s$write_code (char_varying *record_buffer,
short int *error_code);
extern int vos_call_debug ();
#pragma page
static void bomb (char *p_name)
{
char_varying(256) msgvs;
strcpy_vstr_nstr (&msgvs, "FATAL ERROR: Call to missing function '");
strcat_vstr_nstr (&msgvs, p_name);
strcat_vstr_nstr (&msgvs, "'. Entering debugger.");
s$write_code (&msgvs, &0);
strcpy_vstr_nstr (&msgvs, "Please capture the output of the 'trace' request and mail it to Paul_Green@stratus.com.");
s$write_code (&msgvs, &0);
vos_call_debug ();
strcpy_vstr_nstr (&msgvs, "Return from debugger. Stopping program. Sorry but this error is unrecoverable.");
s$write_code (&msgvs, &0);
s$stop_program (&"", &1);
}
extern int dup (int _fildes)
{
bomb ("dup");
}
extern int do_aspawn ()
{
bomb ("do_aspawn");
}
extern int do_spawn ()
{
bomb ("do_spawn");
}
extern int execlp (const char *_file, const char *_arg, ...)
{
bomb ("execlp");
}
extern int execl (const char *_path, const char *_arg, ...)
{
bomb ("execl");
}
extern int execvp (const char *_file, char *const _argv[], ...)
{
bomb ("execvp");
}
extern pid_t fork (void)
{
bomb ("fork");
}
extern void Perl_dump_mstats (char *s)
{
bomb ("Perl_dump_mstats");
}
extern pid_t waitpid (pid_t pid, int *stat_loc, int options)
{
bomb ("waitpid");
}
|