Philipp Tomsich
Christian Thalinger
- $Id: cacao.c 4661 2006-03-21 00:04:59Z motse $
+ $Id: cacao.c 4954 2006-05-25 21:59:49Z motse $
*/
#if defined(ENABLE_JVMTI)
#include "native/jvmti/jvmti.h"
#include "native/jvmti/cacaodbg.h"
-#if defined(USE_THREADS) && defined(NATIVE_THREADS)
+
+#if defined(ENABLE_THREADS)
#include <pthread.h>
#endif
#endif
if (!m)
throw_main_exception_exit();
- s = javastring_new_char(mainstring);
+ s = javastring_new_from_ascii(mainstring);
(void) vm_call_method(m, o, s);
if (!m)
throw_main_exception_exit();
- s = javastring_new_char("Main-Class");
+ s = javastring_new_from_ascii("Main-Class");
o = vm_call_method(m, o, s);
void exit_handler(void);
+
/* main ************************************************************************
The main program.
int main(int argc, char **argv)
{
-#if defined(USE_THREADS) && !defined(NATIVE_THREADS)
- void *dummy;
-#endif
s4 i;
/* local variables ********************************************************/
JavaVMInitArgs *vm_args;
JavaVM *jvm; /* denotes a Java VM */
-
-#if defined(NDEBUG)
- /* motse: for jdwp/jvmti debugging*/
- for (i=0; i<argc; i++)
- fprintf(stderr,"argument string[%d]: %s\n",i,argv[i]);
-#endif
-
-#if defined(USE_THREADS) && !defined(NATIVE_THREADS)
- stackbottom = &dummy;
-#endif
-
if (atexit(vm_exit_handler))
throw_cacao_exception_exit(string_java_lang_InternalError,
"Unable to register exit_handler");
/* load and initialize a Java VM, return a JNI interface pointer in env */
- JNI_CreateJavaVM(&jvm, (void **) &_Jv_env, vm_args);
+ JNI_CreateJavaVM(&jvm, (void *) &_Jv_env, vm_args);
#if defined(ENABLE_JVMTI)
- if (dbgprocess && jvmti && jdwp) /* is this the parent/debugger process ? */
- set_jvmti_phase(JVMTI_PHASE_START);
+ pthread_mutex_init(&dbgcomlock,NULL);
+ if (jvmti) jvmti_set_phase(JVMTI_PHASE_START);
#endif
/* do we have a main class? */
#endif
/*class_showmethods(currentThread->group->header.vftbl->class); */
-
-
#if defined(ENABLE_JVMTI)
- /* if this is the parent process than start the jdwp listening */
- if (jvmti || jdwp) {
- fprintf(stderr, "jdwp/debugger set herewego brkpt %p\n",&&herewego);
- setsysbrkpt(HEREWEGOBRK,&&herewego);
- if (dbgprocess && jdwp) cacaodbglisten(transport);
- }
-
-
- if (!dbgprocess) {
- fprintf(stderr,"debuggee: herewe go\n");
- fflush(stderr);
- }
+ jvmti_set_phase(JVMTI_PHASE_LIVE);
#endif
- /* here we go... */
- herewego:
+
(void) vm_call_method(m, NULL, oa);
/* exception occurred? */
vm_exit(status);
}
- /************* If requested, compile all methods ********************/
+ /* If requested, compile all methods. *************************************/
+
+#if !defined(NDEBUG)
if (compileall) {
classinfo *c;
methodinfo *m;
if (!(c->state & CLASS_LINKED)) {
if (!link_class(c)) {
fprintf(stderr, "Error linking: ");
- utf_fprint_classname(stderr, c->name);
+ utf_fprint_printable_ascii_classname(stderr, c->name);
fprintf(stderr, "\n");
/* print out exception and cause */
if (m->jcode) {
if (!jit_compile(m)) {
fprintf(stderr, "Error compiling: ");
- utf_fprint_classname(stderr, c->name);
+ utf_fprint_printable_ascii_classname(stderr, c->name);
fprintf(stderr, ".");
- utf_fprint(stderr, m->name);
- utf_fprint(stderr, m->descriptor);
+ utf_fprint_printable_ascii(stderr, m->name);
+ utf_fprint_printable_ascii(stderr, m->descriptor);
fprintf(stderr, "\n");
/* print out exception and cause */
}
}
}
+#endif /* !defined(NDEBUG) */
- /******** If requested, compile a specific method ***************/
+ /* If requested, compile a specific method. *******************************/
+#if !defined(NDEBUG)
if (opt_method != NULL) {
methodinfo *m;
}
vm_shutdown(0);
+#endif /* !defined(NDEBUG) */
/* keep compiler happy */