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 &