17 #include "kmp_debug.h" 23 __kmp_debug_printf_stdout(
char const * format, ... )
26 va_start( ap, format );
28 __kmp_vprintf( kmp_out, format, ap );
35 __kmp_debug_printf(
char const * format, ... )
38 va_start( ap, format );
40 __kmp_vprintf( kmp_err, format, ap );
54 file = KMP_I18N_STR( UnknownFile );
58 char const * slash = strrchr( file,
'/' );
59 if ( slash != NULL ) {
65 __kmp_acquire_bootstrap_lock( & __kmp_stdio_lock );
66 __kmp_debug_printf(
"Assertion failure at %s(%d): %s.\n", file, line, msg );
67 __kmp_release_bootstrap_lock( & __kmp_stdio_lock );
68 #ifdef USE_ASSERT_BREAK 72 #endif // USE_ASSERT_BREAK 73 #ifdef USE_ASSERT_STALL 76 #endif // USE_ASSERT_STALL 79 int volatile * ZERO = (
int*) 0;
82 #endif // USE_ASSERT_SEG 87 KMP_MSG( AssertionFailure, file, line ),
88 KMP_HNT( SubmitBugReport ),
96 #endif // KMP_USE_ASSERT 100 __kmp_dump_debug_buffer(
void )
102 if ( __kmp_debug_buffer != NULL ) {
104 int dc = __kmp_debug_count;
105 char *db = & __kmp_debug_buffer[ (dc % __kmp_debug_buf_lines) * __kmp_debug_buf_chars ];
106 char *db_end = & __kmp_debug_buffer[ __kmp_debug_buf_lines * __kmp_debug_buf_chars ];
109 __kmp_acquire_bootstrap_lock( & __kmp_stdio_lock );
110 __kmp_printf_no_lock(
"\nStart dump of debugging buffer (entry=%d):\n",
111 dc % __kmp_debug_buf_lines );
113 for ( i = 0; i < __kmp_debug_buf_lines; i++ ) {
117 for ( db2 = db + 1; db2 < db + __kmp_debug_buf_chars - 1; db2 ++) {
118 if ( *db2 ==
'\0' ) {
119 if ( *(db2-1) !=
'\n' ) { *db2 =
'\n'; *(db2+1) =
'\0'; }
124 if ( db2 == db + __kmp_debug_buf_chars - 1 &&
125 *db2 ==
'\0' && *(db2-1) !=
'\n' ) {
129 __kmp_printf_no_lock(
"%4d: %.*s", i, __kmp_debug_buf_chars, db );
133 db += __kmp_debug_buf_chars;
135 db = __kmp_debug_buffer;
138 __kmp_printf_no_lock(
"End dump of debugging buffer (entry=%d).\n\n",
139 ( dc+i-1 ) % __kmp_debug_buf_lines );
140 __kmp_release_bootstrap_lock( & __kmp_stdio_lock );