Home | History | Annotate | Download | only in back
      1 /*
      2  * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
      3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
      4  *
      5  * This code is free software; you can redistribute it and/or modify it
      6  * under the terms of the GNU General Public License version 2 only, as
      7  * published by the Free Software Foundation.  Oracle designates this
      8  * particular file as subject to the "Classpath" exception as provided
      9  * by Oracle in the LICENSE file that accompanied this code.
     10  *
     11  * This code is distributed in the hope that it will be useful, but WITHOUT
     12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     14  * version 2 for more details (a copy is included in the LICENSE file that
     15  * accompanied this code).
     16  *
     17  * You should have received a copy of the GNU General Public License version
     18  * 2 along with this work; if not, write to the Free Software Foundation,
     19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     20  *
     21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     22  * or visit www.oracle.com if you need additional information or have any
     23  * questions.
     24  */
     25 
     26 #ifndef JDWP_ERROR_MESSAGES_H
     27 #define JDWP_ERROR_MESSAGES_H
     28 
     29 /* It is assumed that ALL strings are UTF-8 safe on entry */
     30 #define TTY_MESSAGE(args) ( tty_message args )
     31 #define ERROR_MESSAGE(args) ( \
     32                 LOG_ERROR(args), \
     33                 error_message args )
     34 
     35 void print_message(FILE *fp, const char *prefix,  const char *suffix,
     36                    const char *format, ...);
     37 void error_message(const char *, ...);
     38 void tty_message(const char *, ...);
     39 void jdiAssertionFailed(char *fileName, int lineNumber, char *msg);
     40 
     41 const char * jvmtiErrorText(jvmtiError);
     42 const char * eventText(int);
     43 const char * jdwpErrorText(jdwpError);
     44 
     45 /* Use THIS_FILE when it is available. */
     46 #ifndef THIS_FILE
     47     #define THIS_FILE __FILE__
     48 #endif
     49 
     50 #define EXIT_ERROR(error,msg) \
     51         { \
     52                 print_message(stderr, "JDWP exit error ", "\n", \
     53                         "%s(%d): %s [%s:%d]", \
     54                         jvmtiErrorText((jvmtiError)error), error, (msg==NULL?"":msg), \
     55                         THIS_FILE, __LINE__); \
     56                 debugInit_exit((jvmtiError)error, msg); \
     57         }
     58 
     59 #define JDI_ASSERT(expression)  \
     60 do {                            \
     61     if (gdata && gdata->assertOn && !(expression)) {            \
     62         jdiAssertionFailed(THIS_FILE, __LINE__, #expression); \
     63     }                                           \
     64 } while (0)
     65 
     66 #define JDI_ASSERT_MSG(expression, msg)  \
     67 do {                            \
     68     if (gdata && gdata->assertOn && !(expression)) {            \
     69         jdiAssertionFailed(THIS_FILE, __LINE__, msg); \
     70     }                                           \
     71 } while (0)
     72 
     73 #define JDI_ASSERT_FAILED(msg)  \
     74    jdiAssertionFailed(THIS_FILE, __LINE__, msg)
     75 
     76 void do_pause(void);
     77 
     78 #endif
     79