/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** ************************************************************************ * @file M4PSW_DebugTrace.c * @brief Default trace function for debugging macros * @note This file gives the default implementation of the trace function * used in the debug instrumentation macros, based on printf. * Application writers are strongly encouraged to implement their * own "M4OSA_DebugTrace". ************************************************************************ */ #include <stdio.h> /*for printf */ #include "M4OSA_Types.h" #include "M4OSA_Error.h" /*#define NO_FILE */ /* suppresses the file name print out */ /** ************************************************************************ * void M4OSA_DebugTrace(M4OSA_Int32 line, char* file, M4OSA_Int32 level, * M4OSA_Char* cond, char* msg, M4OSA_ERR err) * @brief This function implements the trace for debug tests * @note This function is to be called in the debug macros only. * This implementation uses printf. * @param line (IN): the line number in the source file * @param file (IN): the source file name * @param level (IN): the debug level * @param msg (IN): the error message * @param err (IN): the return value (error code) * @return none ************************************************************************ */ M4OSAL_TRACE_EXPORT_TYPE void M4OSA_DebugTrace(M4OSA_Int32 line, M4OSA_Char* file, M4OSA_Int32 level, M4OSA_Char* cond, M4OSA_Char* msg, M4OSA_ERR err) { M4OSA_Int32 i; /* try to "indent" the resulting traces depending on the level */ for (i =0 ; i < level; i ++) { printf(" "); } #ifdef NO_FILE printf("Error: %li, on %s: %s\n",err,cond,msg); #else /* NO_FILE */ printf("Error: %li, on %s: %s Line %lu in: %s\n",err,cond,msg,line,file); #endif /* NO_FILE */ } M4OSAL_TRACE_EXPORT_TYPE M4OSA_Void M4OSA_DEBUG_traceFunction(M4OSA_UInt32 line, M4OSA_Char* fileName, M4OSA_UInt32 level, M4OSA_Char* stringCondition, M4OSA_Char* message, M4OSA_ERR returnedError) { M4OSA_DebugTrace(line, fileName, level, stringCondition, message, returnedError); }