filesys/filesys/Debug.c
2017-06-30 21:01:42 +08:00

85 lines
2.5 KiB
C

//
// Debug.c
// filesys
//
// Created by Saturneric on 2017/6/25.
// Copyright © 2017年 Bakantu Eric. All rights reserved.
//
#include "Debug.h"
#include "ID.h"
int debug_printf(DEBUG_CREATE_INFO *p_deg_ifo){
if (p_deg_ifo->avaliable == 0) return -1;
if (p_deg_ifo->safe == 0) return -1;
if(p_deg_ifo->type == -2){
printf("!!");
}
if(p_deg_ifo->type == 0){
printf("?");
}
if(p_deg_ifo->type == -1){
printf("!");
}
printf("Debug Message{ \n");
printf(" message: %s\n",p_deg_ifo->message);
if(p_deg_ifo->type > 0){
p_deg_ifo->showvar = 1;
}
if(p_deg_ifo->showvar){
if(p_deg_ifo->variable == NULL){
printf("DEBUG_PRINTF Error : unable to get the variable\n}\n");
return -1;
}
}
if(p_deg_ifo->type == STRING){
printf(" ------------\n type: variable info(string)");
if (p_deg_ifo->showvar)
printf("%s",(char *)(p_deg_ifo->variable));
}
else if(p_deg_ifo->type == INT){
printf(" ------------\n type: variable info(integer)");
if (p_deg_ifo->showvar)
printf("%d",*(int *)(p_deg_ifo->variable));
}
else if(p_deg_ifo->type == FLOAT){
printf(" ------------\n type: variable info(float)");
if (p_deg_ifo->showvar)
printf("%f",*(double *)(p_deg_ifo->variable));
}
else if (p_deg_ifo->type == WARNING){
printf(" ------------\n type: warning");
if (p_deg_ifo->showvar)
printf("\n location: %p",p_deg_ifo->variable);
}
else if (p_deg_ifo->type == ERROR){
printf(" ------------\n type: error");
if (p_deg_ifo->showvar)
printf("\n location: %p",p_deg_ifo->variable);
}
else if (p_deg_ifo->type == IMPORTANT_ERROR){
printf(" ------------\n type: improtant error");
if (p_deg_ifo->showvar)
printf("\n location: %p",p_deg_ifo->variable);
}
else printf("DEBUG_PRINTF Error : unable to get the type of the variable");
printf("\n}\n");
free(p_deg_ifo);
return 0;
}
DEBUG_CREATE_INFO *get_degcrtifo(void){
DEBUG_CREATE_INFO *p_deg_crt_ifo = NULL;
p_deg_crt_ifo = (DEBUG_CREATE_INFO *) malloc(sizeof(DEBUG_CREATE_INFO));
if (p_deg_crt_ifo == NULL) return NULL;
p_deg_crt_ifo->type = 0;
p_deg_crt_ifo->avaliable = 1;
p_deg_crt_ifo->showvar = 0;
p_deg_crt_ifo->variable = NULL;
p_deg_crt_ifo->safe = 1;
p_deg_crt_ifo->id = get_id();
return p_deg_crt_ifo;
}