version 1.5, 2005/07/18 10:55:16 |
version 1.8, 2015/10/10 11:29:46 |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <setjmp.h> |
#include <setjmp.h> |
|
#include <stdlib.h> |
#include "ox_kan.h" |
#include "ox_kan.h" |
#include "serversm.h" |
#include "serversm.h" |
extern int OXprintMessage; |
extern int OXprintMessage; |
extern char *MsgStackTrace; |
extern char *MsgStackTrace; |
extern char *MsgSourceTrace; |
extern char *MsgSourceTrace; |
|
extern struct object *MsgStackTraceInArrayp; |
|
|
/* server stack machine */ |
/* server stack machine */ |
|
|
Line 140 int Sm1_popCMO(ox_stream fp,int serial) |
|
Line 142 int Sm1_popCMO(ox_stream fp,int serial) |
|
int Sm1_pushError2(int serial, int no, char *s) |
int Sm1_pushError2(int serial, int no, char *s) |
{ |
{ |
struct object ob = OINIT; |
struct object ob = OINIT; |
|
struct object core = OINIT; |
|
struct object core1 = OINIT; |
char *ss; |
char *ss; |
|
|
|
ss = (char *)sGC_malloc(strlen(s)+1); |
|
strcpy(ss,s); |
|
/* |
char *error_message="<ox103:error_message>"; |
char *error_message="<ox103:error_message>"; |
char *message="<ox103:message>"; |
char *message="<ox103:message>"; |
char *stack_trace="<ox103:stack_trace>"; |
char *stack_trace="<ox103:stack_trace>"; |
Line 171 int Sm1_pushError2(int serial, int no, char *s) |
|
Line 179 int Sm1_pushError2(int serial, int no, char *s) |
|
strcat(ss,source_trace2); |
strcat(ss,source_trace2); |
} |
} |
strcat(ss,error_message2); |
strcat(ss,error_message2); |
ob = KnewErrorPacket(serial,no,ss); |
*/ |
|
|
|
if (MsgStackTraceInArrayp != NULL) { |
|
core = KSnewObjectArray(2); |
|
core1 = KSnewObjectArray(2); |
|
putoa(core1,0,KpoString("where")); /* keyword */ |
|
putoa(core1,1,(*MsgStackTraceInArrayp)); |
|
putoa(core,0,core1); |
|
core1 = KSnewObjectArray(2); |
|
putoa(core1,0,KpoString("reason_of_error")); /* keyword */ |
|
putoa(core1,1,KpoString(s)); |
|
putoa(core,1,core1); |
|
}else{ |
|
core = KSnewObjectArray(0); |
|
} |
|
ob = KSnewObjectArray(4); |
|
putoa(ob,0,KpoInteger(serial)); putoa(ob,1,KpoInteger(no)); |
|
putoa(ob,2,KpoString(ss)); |
|
putoa(ob,3,core); |
|
|
|
ob = KnewErrorPacketObj(ob); |
KSpush(ob); |
KSpush(ob); |
} |
} |
|
|