1、使用Eclipse的断点,查看堆栈
2、最常用的就是LOG
log很简单的,举个简单的例子:
LOGD("initHeapLocked: raw size= %d x %d", picture_width, picture_height);
LOGE("initHeapLocked: raw size= %d x %d", picture_width, picture_height);
D就是debug的意思,E就是error的意思~~
更详细的log打印方式可以看这个:
static void show_help(const char *cmd)
{
fprintf(stderr,"Usage: %s [options] [filterspecs]\n", cmd); fprintf(stderr, "options include:\n"
" -s Set default filter to silent.\n"
" Like specifying filterspec '*:s'\n"
" -f <filename> Log to file. Default to stdout\n"
" -r [ <kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f\n"
" -n <count> Sets max number of rotated logs to <count>, default 4\n"
" -v <format> Sets the log print format, where <format> is one of:\n\n"
" brief process tag thread raw time threadtime long\n\n"
" -c clear (flush) the entire log and exit\n"
" -d dump the log and then exit (don't block)\n"
" -g get the size of the log's ring buffer and exit\n"
" -b <buffer> request alternate ring buffer\n"
" ('main' (default), 'radio', 'events')\n"
" -B output the log in binary");
fprintf(stderr,"\nfilterspecs are a series of \n"
" <tag>[:priority]\n\n"
"where <tag> is a log component tag (or * for all) and priority is:\n"
" V Verbose\n"
" D Debug\n"
" I Info\n"
" W Warn\n"
" E Error\n"
" F Fatal\n"
" S Silent (supress all output)\n"
"\n'*' means '*:d' and <tag> by itself means <tag>:v\n"
"\nIf not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.\n"
"If no filterspec is found, filter defaults to '*:I'\n"
"\nIf not specified with -v, format is set from ANDROID_PRINTF_LOG\n"
"or defaults to \"brief\"\n\n");所有的log信息在DDMS上都可以看到,或者简单点直接在shell里面敲:
adb shell
logcat > mylog &
2、最常用的就是LOG
log很简单的,举个简单的例子:
LOGD("initHeapLocked: raw size= %d x %d", picture_width, picture_height);
LOGE("initHeapLocked: raw size= %d x %d", picture_width, picture_height);
D就是debug的意思,E就是error的意思~~
更详细的log打印方式可以看这个:
static void show_help(const char *cmd)
{
fprintf(stderr,"Usage: %s [options] [filterspecs]\n", cmd); fprintf(stderr, "options include:\n"
" -s Set default filter to silent.\n"
" Like specifying filterspec '*:s'\n"
" -f <filename> Log to file. Default to stdout\n"
" -r [ <kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f\n"
" -n <count> Sets max number of rotated logs to <count>, default 4\n"
" -v <format> Sets the log print format, where <format> is one of:\n\n"
" brief process tag thread raw time threadtime long\n\n"
" -c clear (flush) the entire log and exit\n"
" -d dump the log and then exit (don't block)\n"
" -g get the size of the log's ring buffer and exit\n"
" -b <buffer> request alternate ring buffer\n"
" ('main' (default), 'radio', 'events')\n"
" -B output the log in binary");
fprintf(stderr,"\nfilterspecs are a series of \n"
" <tag>[:priority]\n\n"
"where <tag> is a log component tag (or * for all) and priority is:\n"
" V Verbose\n"
" D Debug\n"
" I Info\n"
" W Warn\n"
" E Error\n"
" F Fatal\n"
" S Silent (supress all output)\n"
"\n'*' means '*:d' and <tag> by itself means <tag>:v\n"
"\nIf not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.\n"
"If no filterspec is found, filter defaults to '*:I'\n"
"\nIf not specified with -v, format is set from ANDROID_PRINTF_LOG\n"
"or defaults to \"brief\"\n\n");所有的log信息在DDMS上都可以看到,或者简单点直接在shell里面敲:
adb shell
logcat > mylog &
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货