b.smali
.class public final Lcom/tencent/bugly/crashreport/crash/anr/b;
.super Ljava/lang/Object;
.source "BUGLY"
# interfaces
.implements Lcom/tencent/bugly/proguard/ac;
# static fields
.field private static n:Lcom/tencent/bugly/crashreport/crash/anr/b;
# instance fields
.field private a:Ljava/util/concurrent/atomic/AtomicInteger;
.field private b:J
.field private final c:Landroid/content/Context;
.field private final d:Lcom/tencent/bugly/crashreport/common/info/a;
.field private final e:Lcom/tencent/bugly/proguard/w;
.field private final f:Lcom/tencent/bugly/crashreport/common/strategy/a;
.field private g:Ljava/lang/String;
.field private final h:Lcom/tencent/bugly/crashreport/crash/b;
.field private i:Landroid/os/FileObserver;
.field private j:Z
.field private k:Lcom/tencent/bugly/proguard/ab;
.field private l:I
.field private m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
# direct methods
.method private constructor <init>(Landroid/content/Context;Lcom/tencent/bugly/crashreport/common/strategy/a;Lcom/tencent/bugly/crashreport/common/info/a;Lcom/tencent/bugly/proguard/w;Lcom/tencent/bugly/crashreport/crash/b;)V
.registers 9
.prologue
const/4 v2, 0x0
.line 120
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 52
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0, v2}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
.line 53
const-wide/16 v0, -0x1
iput-wide v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->b:J
.line 75
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->j:Z
.line 121
invoke-static {p1}, Lcom/tencent/bugly/proguard/z;->a(Landroid/content/Context;)Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
.line 122
const-string v0, "bugly"
invoke-virtual {p1, v0, v2}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File;
move-result-object v0
.line 123
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->g:Ljava/lang/String;
.line 124
iput-object p3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
.line 125
iput-object p4, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->e:Lcom/tencent/bugly/proguard/w;
.line 126
iput-object p2, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->f:Lcom/tencent/bugly/crashreport/common/strategy/a;
.line 127
iput-object p5, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->h:Lcom/tencent/bugly/crashreport/crash/b;
.line 128
new-instance v0, Landroid/app/ActivityManager$ProcessErrorStateInfo;
invoke-direct {v0}, Landroid/app/ActivityManager$ProcessErrorStateInfo;-><init>()V
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
.line 129
return-void
.end method
.method private a(Landroid/content/Context;J)Landroid/app/ActivityManager$ProcessErrorStateInfo;
.registers 12
.prologue
const-wide/16 v4, 0x2710
const-wide/16 v2, 0x0
const/4 v1, 0x0
.line 136
cmp-long v0, v4, v2
if-gez v0, :cond_4c
.line 137
:goto_9
:try_start_9
const-string/jumbo v0, "to find!"
const/4 v4, 0x0
new-array v4, v4, [Ljava/lang/Object;
invoke-static {v0, v4}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 138
const-string v0, "activity"
invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/ActivityManager;
.line 140
const-wide/16 v4, 0x1f4
div-long v4, v2, v4
move v2, v1
.line 143
:goto_1f
const-string/jumbo v1, "waiting!"
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
invoke-static {v1, v3}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 144
invoke-virtual {v0}, Landroid/app/ActivityManager;->getProcessesInErrorState()Ljava/util/List;
move-result-object v1
.line 145
if-eqz v1, :cond_4e
.line 146
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_32
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_4e
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/app/ActivityManager$ProcessErrorStateInfo;
.line 147
iget v6, v1, Landroid/app/ActivityManager$ProcessErrorStateInfo;->condition:I
const/4 v7, 0x2
if-ne v6, v7, :cond_32
.line 148
const-string v0, "found!"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v0, v2}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 165
:goto_4b
return-object v1
:cond_4c
move-wide v2, v4
.line 136
goto :goto_9
.line 155
:cond_4e
const-wide/16 v6, 0x1f4
invoke-static {v6, v7}, Lcom/tencent/bugly/proguard/z;->b(J)V
.line 156
add-int/lit8 v1, v2, 0x1
int-to-long v2, v2
cmp-long v2, v2, v4
if-ltz v2, :cond_8c
.line 157
const-string v0, "end!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_62
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_62} :catch_64
.catch Ljava/lang/OutOfMemoryError; {:try_start_9 .. :try_end_62} :catch_69
.line 165
:goto_62
const/4 v1, 0x0
goto :goto_4b
.line 158
:catch_64
move-exception v0
.line 159
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->b(Ljava/lang/Throwable;)Z
goto :goto_62
.line 160
:catch_69
move-exception v0
.line 161
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v2
iput v2, v1, Landroid/app/ActivityManager$ProcessErrorStateInfo;->pid:I
.line 162
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "bugly sdk waitForAnrProcessStateChanged encount error:"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/lang/OutOfMemoryError;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Landroid/app/ActivityManager$ProcessErrorStateInfo;->shortMsg:Ljava/lang/String;
.line 163
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
goto :goto_4b
:cond_8c
move v2, v1
goto :goto_1f
.end method
.method private a(Lcom/tencent/bugly/crashreport/crash/anr/a;)Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;
.registers 6
.prologue
.line 201
new-instance v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;
invoke-direct {v1}, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;-><init>()V
.line 204
:try_start_5
invoke-static {}, Lcom/tencent/bugly/crashreport/common/info/b;->k()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->C:J
.line 205
invoke-static {}, Lcom/tencent/bugly/crashreport/common/info/b;->i()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->D:J
.line 206
invoke-static {}, Lcom/tencent/bugly/crashreport/common/info/b;->m()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->E:J
.line 207
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->p()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->F:J
.line 208
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->o()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->G:J
.line 209
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->q()J
move-result-wide v2
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->H:J
.line 210
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
invoke-static {}, Lcom/tencent/bugly/crashreport/common/info/b;->t()Z
move-result v0
if-nez v0, :cond_42
.line 211
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
sget v2, Lcom/tencent/bugly/crashreport/crash/c;->e:I
const/4 v3, 0x0
invoke-static {v0, v2, v3}, Lcom/tencent/bugly/proguard/z;->a(Landroid/content/Context;ILjava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->w:Ljava/lang/String;
.line 214
:cond_42
const/4 v0, 0x3
iput v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->b:I
.line 215
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->h()Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->e:Ljava/lang/String;
.line 216
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
iget-object v0, v0, Lcom/tencent/bugly/crashreport/common/info/a;->k:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->f:Ljava/lang/String;
.line 217
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->w()Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->g:Ljava/lang/String;
.line 218
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->g()Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->m:Ljava/lang/String;
.line 219
const-string v0, "ANR_EXCEPTION"
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->n:Ljava/lang/String;
.line 220
iget-object v0, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->f:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->o:Ljava/lang/String;
.line 221
iget-object v0, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
.line 222
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->P:Ljava/util/Map;
.line 223
iget-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->P:Ljava/util/Map;
const-string v2, "BUGLY_CR_01"
iget-object v3, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->e:Ljava/lang/String;
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 225
const/4 v0, -0x1
.line 226
iget-object v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
if-eqz v2, :cond_8c
.line 227
iget-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
const-string v2, "\n"
invoke-virtual {v0, v2}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
.line 229
:cond_8c
if-lez v0, :cond_11b
iget-object v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
const/4 v3, 0x0
invoke-virtual {v2, v3, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
:goto_95
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->p:Ljava/lang/String;
.line 232
iget-wide v2, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->c:J
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->r:J
.line 233
iget-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
if-eqz v0, :cond_ab
.line 234
iget-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->q:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/tencent/bugly/proguard/z;->b([B)Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->u:Ljava/lang/String;
.line 237
:cond_ab
iget-object v0, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->b:Ljava/util/Map;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->z:Ljava/util/Map;
.line 238
iget-object v0, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->A:Ljava/lang/String;
.line 239
const-string v0, "main(1)"
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->B:Ljava/lang/String;
.line 240
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->y()Ljava/lang/String;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->I:Ljava/lang/String;
.line 241
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->v()Ljava/util/Map;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->h:Ljava/util/Map;
.line 242
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->J()Ljava/util/Map;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->i:Ljava/util/Map;
.line 243
iget-object v0, p1, Lcom/tencent/bugly/crashreport/crash/anr/a;->d:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->v:Ljava/lang/String;
.line 244
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
iget-object v0, v0, Lcom/tencent/bugly/crashreport/common/info/a;->o:Ljava/lang/String;
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->L:Ljava/lang/String;
.line 245
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
iget-wide v2, v0, Lcom/tencent/bugly/crashreport/common/info/a;->a:J
iput-wide v2, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->M:J
.line 246
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->a()Z
move-result v0
iput-boolean v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->N:Z
.line 247
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
invoke-static {}, Lcom/tencent/bugly/crashreport/common/info/b;->t()Z
move-result v0
if-nez v0, :cond_f4
.line 248
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->h:Lcom/tencent/bugly/crashreport/crash/b;
invoke-virtual {v0, v1}, Lcom/tencent/bugly/crashreport/crash/b;->d(Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)V
.line 251
:cond_f4
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->H()I
move-result v0
iput v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->Q:I
.line 252
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->I()I
move-result v0
iput v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->R:I
.line 253
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->B()Ljava/util/Map;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->S:Ljava/util/Map;
.line 254
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->d:Lcom/tencent/bugly/crashreport/common/info/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/info/a;->G()Ljava/util/Map;
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->T:Ljava/util/Map;
.line 256
invoke-static {}, Lcom/tencent/bugly/proguard/y;->a()[B
move-result-object v0
iput-object v0, v1, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->y:[B
.line 262
:cond_11a
:goto_11a
return-object v1
.line 229
:cond_11b
const-string v0, "GET_FAIL"
:try_end_11d
.catch Ljava/lang/Throwable; {:try_start_5 .. :try_end_11d} :catch_11f
goto/16 :goto_95
.line 257
:catch_11f
move-exception v0
.line 258
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v2
if-nez v2, :cond_11a
.line 259
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_11a
.end method
.method public static a(Landroid/content/Context;Lcom/tencent/bugly/crashreport/common/strategy/a;Lcom/tencent/bugly/crashreport/common/info/a;Lcom/tencent/bugly/proguard/w;Lcom/tencent/bugly/proguard/p;Lcom/tencent/bugly/crashreport/crash/b;Lcom/tencent/bugly/BuglyStrategy$a;)Lcom/tencent/bugly/crashreport/crash/anr/b;
.registers 13
.prologue
.line 95
sget-object v0, Lcom/tencent/bugly/crashreport/crash/anr/b;->n:Lcom/tencent/bugly/crashreport/crash/anr/b;
if-nez v0, :cond_10
.line 96
new-instance v0, Lcom/tencent/bugly/crashreport/crash/anr/b;
move-object v1, p0
move-object v2, p1
move-object v3, p2
move-object v4, p3
move-object v5, p5
invoke-direct/range {v0 .. v5}, Lcom/tencent/bugly/crashreport/crash/anr/b;-><init>(Landroid/content/Context;Lcom/tencent/bugly/crashreport/common/strategy/a;Lcom/tencent/bugly/crashreport/common/info/a;Lcom/tencent/bugly/proguard/w;Lcom/tencent/bugly/crashreport/crash/b;)V
sput-object v0, Lcom/tencent/bugly/crashreport/crash/anr/b;->n:Lcom/tencent/bugly/crashreport/crash/anr/b;
.line 99
:cond_10
sget-object v0, Lcom/tencent/bugly/crashreport/crash/anr/b;->n:Lcom/tencent/bugly/crashreport/crash/anr/b;
return-object v0
.end method
.method private a(Landroid/content/Context;Ljava/lang/String;Landroid/app/ActivityManager$ProcessErrorStateInfo;JLjava/util/Map;)Z
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/String;",
"Landroid/app/ActivityManager$ProcessErrorStateInfo;",
"J",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)Z"
}
.end annotation
.prologue
.line 360
new-instance v4, Lcom/tencent/bugly/crashreport/crash/anr/a;
invoke-direct {v4}, Lcom/tencent/bugly/crashreport/crash/anr/a;-><init>()V
iput-wide p4, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->c:J
if-eqz p3, :cond_b1
iget-object v0, p3, Landroid/app/ActivityManager$ProcessErrorStateInfo;->processName:Ljava/lang/String;
:goto_b
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
if-eqz p3, :cond_b5
iget-object v0, p3, Landroid/app/ActivityManager$ProcessErrorStateInfo;->shortMsg:Ljava/lang/String;
:goto_11
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->f:Ljava/lang/String;
if-eqz p3, :cond_b9
iget-object v0, p3, Landroid/app/ActivityManager$ProcessErrorStateInfo;->longMsg:Ljava/lang/String;
:goto_17
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->e:Ljava/lang/String;
iput-object p6, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->b:Ljava/util/Map;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v1
if-eqz p6, :cond_4b
invoke-interface {p6}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_2d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_4b
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/Thread;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_2d
invoke-interface {p6, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
:cond_4b
iget-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_57
const-string v0, "main stack is null , some error may be encountered."
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
:cond_57
const-string v1, "anr tm:%d\ntr:%s\nproc:%s\nmain stack:%s\nsMsg:%s\n lMsg:%s\n threads:%d"
const/4 v0, 0x7
new-array v2, v0, [Ljava/lang/Object;
const/4 v0, 0x0
iget-wide v6, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->c:J
invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
aput-object v3, v2, v0
const/4 v0, 0x1
iget-object v3, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->d:Ljava/lang/String;
aput-object v3, v2, v0
const/4 v0, 0x2
iget-object v3, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
aput-object v3, v2, v0
const/4 v0, 0x3
iget-object v3, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
aput-object v3, v2, v0
const/4 v0, 0x4
iget-object v3, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->f:Ljava/lang/String;
aput-object v3, v2, v0
const/4 v0, 0x5
iget-object v3, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->e:Ljava/lang/String;
aput-object v3, v2, v0
const/4 v3, 0x6
iget-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->b:Ljava/util/Map;
if-nez v0, :cond_bd
const/4 v0, 0x0
:goto_84
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v2, v3
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 361
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->f:Lcom/tencent/bugly/crashreport/common/strategy/a;
invoke-virtual {v0}, Lcom/tencent/bugly/crashreport/common/strategy/a;->c()Lcom/tencent/bugly/crashreport/common/strategy/StrategyBean;
move-result-object v0
.line 362
iget-boolean v0, v0, Lcom/tencent/bugly/crashreport/common/strategy/StrategyBean;->j:Z
if-nez v0, :cond_c4
.line 363
const-string v0, "ANR Report is closed! print local for helpful!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 364
const-string v0, "ANR"
invoke-static {}, Lcom/tencent/bugly/proguard/z;->a()Ljava/lang/String;
move-result-object v1
iget-object v2, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
const-string v3, "main"
iget-object v4, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
const/4 v5, 0x0
invoke-static/range {v0 .. v5}, Lcom/tencent/bugly/crashreport/crash/b;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)V
.line 366
const/4 v0, 0x0
.line 410
:goto_b0
return v0
.line 360
:cond_b1
const-string v0, ""
goto/16 :goto_b
:cond_b5
const-string v0, ""
goto/16 :goto_11
:cond_b9
const-string v0, ""
goto/16 :goto_17
:cond_bd
iget-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->b:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->size()I
move-result v0
goto :goto_84
.line 369
:cond_c4
const-string v0, "found visiable anr , start to upload!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 370
invoke-direct {p0, v4}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Lcom/tencent/bugly/crashreport/crash/anr/a;)Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;
move-result-object v5
.line 372
if-nez v5, :cond_dd
.line 373
const-string/jumbo v0, "pack anr fail!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 374
const/4 v0, 0x0
goto :goto_b0
.line 377
:cond_dd
invoke-static {}, Lcom/tencent/bugly/crashreport/crash/c;->a()Lcom/tencent/bugly/crashreport/crash/c;
move-result-object v0
invoke-virtual {v0, v5}, Lcom/tencent/bugly/crashreport/crash/c;->a(Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)V
.line 378
iget-wide v0, v5, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->a:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-ltz v0, :cond_162
.line 379
const-string v0, "backup anr record success!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 387
:goto_f4
if-eqz p2, :cond_16b
new-instance v0, Ljava/io/File;
invoke-direct {v0, p2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_16b
.line 388
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->g:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "bugly_trace_"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p4, p5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ".txt"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 389
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
iput-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->d:Ljava/lang/String;
.line 390
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
const/4 v1, 0x3
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
.line 391
iget-object v0, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->d:Ljava/lang/String;
iget-object v1, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
invoke-static {p2, v0, v1}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
.line 392
if-eqz v0, :cond_13b
.line 393
const-string v0, "backup trace success"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 403
:cond_13b
:goto_13b
const-string v0, "ANR"
invoke-static {}, Lcom/tencent/bugly/proguard/z;->a()Ljava/lang/String;
move-result-object v1
iget-object v2, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->a:Ljava/lang/String;
const-string v3, "main"
iget-object v4, v4, Lcom/tencent/bugly/crashreport/crash/anr/a;->g:Ljava/lang/String;
invoke-static/range {v0 .. v5}, Lcom/tencent/bugly/crashreport/crash/b;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)V
.line 406
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->h:Lcom/tencent/bugly/crashreport/crash/b;
invoke-virtual {v0, v5}, Lcom/tencent/bugly/crashreport/crash/b;->a(Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)Z
move-result v0
if-nez v0, :cond_15a
.line 407
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->h:Lcom/tencent/bugly/crashreport/crash/b;
const-wide/16 v2, 0xbb8
const/4 v1, 0x1
invoke-virtual {v0, v5, v2, v3, v1}, Lcom/tencent/bugly/crashreport/crash/b;->a(Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;JZ)V
.line 409
:cond_15a
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->h:Lcom/tencent/bugly/crashreport/crash/b;
invoke-virtual {v0, v5}, Lcom/tencent/bugly/crashreport/crash/b;->c(Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;)V
.line 410
const/4 v0, 0x1
goto/16 :goto_b0
.line 381
:cond_162
const-string v0, "backup anr record fail!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
goto :goto_f4
.line 396
:cond_16b
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->j()Ljava/io/File;
move-result-object v0
.line 397
const-string/jumbo v1, "traceFile is %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object v0, v2, v3
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 398
if-eqz v0, :cond_13b
.line 399
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
iput-object v0, v5, Lcom/tencent/bugly/crashreport/crash/CrashDetailBean;->v:Ljava/lang/String;
goto :goto_13b
.end method
.method private static a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.registers 15
.prologue
const/4 v11, 0x3
const/4 v5, 0x2
const/4 v3, 0x1
const/4 v4, 0x0
.line 269
invoke-static {p2, p0, v3}, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper;->readTargetDumpInfo(Ljava/lang/String;Ljava/lang/String;Z)Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;
move-result-object v6
.line 270
if-eqz v6, :cond_16
iget-object v1, v6, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;->d:Ljava/util/Map;
if-eqz v1, :cond_16
iget-object v1, v6, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;->d:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->size()I
move-result v1
if-gtz v1, :cond_21
.line 271
:cond_16
const-string v1, "not found trace dump for %s"
new-array v2, v3, [Ljava/lang/Object;
aput-object p2, v2, v4
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
move v1, v4
.line 342
:goto_20
return v1
.line 275
:cond_21
new-instance v1, Ljava/io/File;
invoke-direct {v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 277
:try_start_26
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_40
.line 278
invoke-virtual {v1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_3d
.line 279
invoke-virtual {v1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
.line 282
:cond_3d
invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z
:try_end_40
.catch Ljava/lang/Exception; {:try_start_26 .. :try_end_40} :catch_57
.line 294
:cond_40
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_4c
invoke-virtual {v1}, Ljava/io/File;->canWrite()Z
move-result v2
if-nez v2, :cond_91
.line 295
:cond_4c
const-string v1, "backup file create fail %s"
new-array v2, v3, [Ljava/lang/Object;
aput-object p1, v2, v4
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
move v1, v4
.line 296
goto :goto_20
.line 285
:catch_57
move-exception v1
.line 286
invoke-static {v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v2
if-nez v2, :cond_61
.line 287
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
.line 289
:cond_61
const-string v2, "backup file create error! %s %s"
new-array v5, v5, [Ljava/lang/Object;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
const-string v7, ":"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
aput-object v1, v5, v4
aput-object p1, v5, v3
invoke-static {v2, v5}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
move v1, v4
.line 291
goto :goto_20
.line 299
:cond_91
const/4 v2, 0x0
.line 302
:try_start_92
new-instance v5, Ljava/io/BufferedWriter;
new-instance v7, Ljava/io/FileWriter;
const/4 v8, 0x0
invoke-direct {v7, v1, v8}, Ljava/io/FileWriter;-><init>(Ljava/io/File;Z)V
invoke-direct {v5, v7}, Ljava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V
:try_end_9d
.catch Ljava/io/IOException; {:try_start_92 .. :try_end_9d} :catch_1ea
.catchall {:try_start_92 .. :try_end_9d} :catchall_1d2
.line 304
:try_start_9d
iget-object v1, v6, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;->d:Ljava/util/Map;
const-string v2, "main"
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
.line 305
if-eqz v1, :cond_e4
array-length v2, v1
if-lt v2, v11, :cond_e4
.line 306
const/4 v2, 0x0
aget-object v2, v1, v2
.line 307
const/4 v7, 0x1
aget-object v7, v1, v7
.line 308
const/4 v8, 0x2
aget-object v1, v1, v8
.line 309
new-instance v8, Ljava/lang/StringBuilder;
const-string v9, "\"main\" tid="
invoke-direct {v8, v9}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v8, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v8, " :\n"
invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v5, v1}, Ljava/io/BufferedWriter;->write(Ljava/lang/String;)V
.line 310
invoke-virtual {v5}, Ljava/io/BufferedWriter;->flush()V
.line 313
:cond_e4
iget-object v1, v6, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;->d:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v1
invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v6
:cond_ee
:goto_ee
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1b6
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
move-object v0, v1
check-cast v0, Ljava/util/Map$Entry;
move-object v2, v0
.line 314
invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
const-string v7, "main"
invoke-virtual {v1, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_ee
.line 315
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
if-eqz v1, :cond_ee
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
array-length v1, v1
if-lt v1, v11, :cond_ee
.line 319
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
const/4 v7, 0x0
aget-object v7, v1, v7
.line 320
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
const/4 v8, 0x1
aget-object v8, v1, v8
.line 321
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
check-cast v1, [Ljava/lang/String;
const/4 v9, 0x2
aget-object v9, v1, v9
.line 322
new-instance v10, Ljava/lang/StringBuilder;
const-string v1, "\""
invoke-direct {v10, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v10, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\" tid="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " :\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v5, v1}, Ljava/io/BufferedWriter;->write(Ljava/lang/String;)V
.line 324
invoke-virtual {v5}, Ljava/io/BufferedWriter;->flush()V
:try_end_173
.catch Ljava/io/IOException; {:try_start_9d .. :try_end_173} :catch_175
.catchall {:try_start_9d .. :try_end_173} :catchall_1e5
goto/16 :goto_ee
.line 328
:catch_175
move-exception v1
move-object v2, v5
.line 329
:goto_177
:try_start_177
invoke-static {v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v3
if-nez v3, :cond_180
.line 330
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 332
:cond_180
const-string v3, "dump trace fail %s"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Object;
const/4 v6, 0x0
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const-string v8, ":"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v7, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
aput-object v1, v5, v6
invoke-static {v3, v5}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_1ae
.catchall {:try_start_177 .. :try_end_1ae} :catchall_1e7
.line 333
if-eqz v2, :cond_1b3
.line 337
:try_start_1b0
invoke-virtual {v2}, Ljava/io/BufferedWriter;->close()V
:try_end_1b3
.catch Ljava/io/IOException; {:try_start_1b0 .. :try_end_1b3} :catch_1c7
:cond_1b3
:goto_1b3
move v1, v4
.line 342
goto/16 :goto_20
.line 327
:cond_1b6
:try_start_1b6
invoke-virtual {v5}, Ljava/io/BufferedWriter;->close()V
:try_end_1b9
.catch Ljava/io/IOException; {:try_start_1b6 .. :try_end_1b9} :catch_1bc
:cond_1b9
:goto_1b9
move v1, v3
.line 342
goto/16 :goto_20
.line 338
:catch_1bc
move-exception v1
.line 339
invoke-static {v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v2
if-nez v2, :cond_1b9
.line 340
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1b9
.line 338
:catch_1c7
move-exception v1
.line 339
invoke-static {v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v2
if-nez v2, :cond_1b3
.line 340
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1b3
.line 335
:catchall_1d2
move-exception v1
move-object v5, v2
:goto_1d4
if-eqz v5, :cond_1d9
.line 337
:try_start_1d6
invoke-virtual {v5}, Ljava/io/BufferedWriter;->close()V
:try_end_1d9
.catch Ljava/io/IOException; {:try_start_1d6 .. :try_end_1d9} :catch_1da
.line 342
:cond_1d9
:goto_1d9
throw v1
.line 338
:catch_1da
move-exception v2
.line 339
invoke-static {v2}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v3
if-nez v3, :cond_1d9
.line 340
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1d9
.line 335
:catchall_1e5
move-exception v1
goto :goto_1d4
:catchall_1e7
move-exception v1
move-object v5, v2
goto :goto_1d4
.line 328
:catch_1ea
move-exception v1
goto :goto_177
.end method
.method private declared-synchronized b(Z)V
.registers 3
.prologue
.line 581
monitor-enter p0
if-eqz p1, :cond_8
.line 582
:try_start_3
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->f()V
:try_end_6
.catchall {:try_start_3 .. :try_end_6} :catchall_c
.line 586
:goto_6
monitor-exit p0
return-void
.line 584
:cond_8
:try_start_8
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->g()V
:try_end_b
.catchall {:try_start_8 .. :try_end_b} :catchall_c
goto :goto_6
.line 581
:catchall_c
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized c(Z)V
.registers 6
.prologue
.line 599
monitor-enter p0
:try_start_1
iget-boolean v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->j:Z
if-eq v0, p1, :cond_17
.line 600
const-string/jumbo v0, "user change anr %b"
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v3
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 601
iput-boolean p1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->j:Z
:try_end_17
.catchall {:try_start_1 .. :try_end_17} :catchall_19
.line 603
:cond_17
monitor-exit p0
return-void
.line 599
:catchall_19
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized f()V
.registers 4
.prologue
.line 503
monitor-enter p0
:try_start_1
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->h()Z
move-result v0
if-eqz v0, :cond_12
.line 504
const-string/jumbo v0, "start when started!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_10
.catchall {:try_start_1 .. :try_end_10} :catchall_4d
.line 543
:cond_10
:goto_10
monitor-exit p0
return-void
.line 508
:cond_12
:try_start_12
new-instance v0, Lcom/tencent/bugly/crashreport/crash/anr/b$1;
const-string v1, "/data/anr/"
const/16 v2, 0x8
invoke-direct {v0, p0, v1, v2}, Lcom/tencent/bugly/crashreport/crash/anr/b$1;-><init>(Lcom/tencent/bugly/crashreport/crash/anr/b;Ljava/lang/String;I)V
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
:try_end_1d
.catchall {:try_start_12 .. :try_end_1d} :catchall_4d
.line 526
:try_start_1d
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
invoke-virtual {v0}, Landroid/os/FileObserver;->startWatching()V
.line 527
const-string/jumbo v0, "start anr monitor!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 528
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->e:Lcom/tencent/bugly/proguard/w;
new-instance v1, Lcom/tencent/bugly/crashreport/crash/anr/b$2;
invoke-direct {v1, p0}, Lcom/tencent/bugly/crashreport/crash/anr/b$2;-><init>(Lcom/tencent/bugly/crashreport/crash/anr/b;)V
invoke-virtual {v0, v1}, Lcom/tencent/bugly/proguard/w;->a(Ljava/lang/Runnable;)Z
:try_end_35
.catch Ljava/lang/Throwable; {:try_start_1d .. :try_end_35} :catch_36
.catchall {:try_start_1d .. :try_end_35} :catchall_4d
goto :goto_10
.line 535
:catch_36
move-exception v0
.line 536
const/4 v1, 0x0
:try_start_38
iput-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
.line 537
const-string/jumbo v1, "start anr monitor failed!"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 538
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v1
if-nez v1, :cond_10
.line 539
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:try_end_4c
.catchall {:try_start_38 .. :try_end_4c} :catchall_4d
goto :goto_10
.line 503
:catchall_4d
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized g()V
.registers 4
.prologue
.line 549
monitor-enter p0
:try_start_1
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->h()Z
move-result v0
if-nez v0, :cond_11
.line 550
const-string v0, "close when closed!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_f
.catchall {:try_start_1 .. :try_end_f} :catchall_36
.line 566
:cond_f
:goto_f
monitor-exit p0
return-void
.line 556
:cond_11
:try_start_11
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
invoke-virtual {v0}, Landroid/os/FileObserver;->stopWatching()V
.line 557
const/4 v0, 0x0
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
.line 558
const-string v0, "close anr monitor!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_21
.catch Ljava/lang/Throwable; {:try_start_11 .. :try_end_21} :catch_22
.catchall {:try_start_11 .. :try_end_21} :catchall_36
goto :goto_f
.line 559
:catch_22
move-exception v0
.line 560
:try_start_23
const-string/jumbo v1, "stop anr monitor failed!"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 561
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v1
if-nez v1, :cond_f
.line 562
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:try_end_35
.catchall {:try_start_23 .. :try_end_35} :catchall_36
goto :goto_f
.line 549
:catchall_36
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized h()Z
.registers 2
.prologue
.line 572
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->i:Landroid/os/FileObserver;
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_a
if-eqz v0, :cond_8
const/4 v0, 0x1
:goto_6
monitor-exit p0
return v0
:cond_8
const/4 v0, 0x0
goto :goto_6
:catchall_a
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized i()Z
.registers 2
.prologue
.line 592
monitor-enter p0
:try_start_1
iget-boolean v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->j:Z
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
monitor-exit p0
return v0
:catchall_5
move-exception v0
monitor-exit p0
throw v0
.end method
.method private j()Ljava/io/File;
.registers 21
.prologue
.line 777
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
.line 778
new-instance v2, Ljava/io/File;
move-object/from16 v0, p0
iget-object v3, v0, Lcom/tencent/bugly/crashreport/crash/anr/b;->g:Ljava/lang/String;
invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 780
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v3
if-eqz v3, :cond_a3
invoke-virtual {v2}, Ljava/io/File;->isDirectory()Z
move-result v3
if-eqz v3, :cond_a3
.line 782
:try_start_19
invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v6
.line 783
if-eqz v6, :cond_22
array-length v2, v6
if-nez v2, :cond_24
.line 784
:cond_22
const/4 v2, 0x0
.line 816
:cond_23
:goto_23
return-object v2
.line 786
:cond_24
const-string v7, "bugly_trace_"
.line 787
const-string v8, ".txt"
.line 788
invoke-virtual {v7}, Ljava/lang/String;->length()I
move-result v9
.line 789
array-length v10, v6
const/4 v2, 0x0
move v3, v2
:goto_2f
if-ge v3, v10, :cond_a3
aget-object v2, v6, v3
.line 790
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v11
.line 791
invoke-virtual {v11, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
:try_end_3a
.catch Ljava/lang/Throwable; {:try_start_19 .. :try_end_3a} :catch_9f
move-result v12
if-eqz v12, :cond_84
.line 793
:try_start_3d
invoke-virtual {v11, v8}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v12
.line 794
if-lez v12, :cond_84
.line 795
invoke-virtual {v11, v9, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v12
invoke-static {v12}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v12
.line 796
sub-long v14, v4, v12
const-wide/16 v16, 0x3e8
div-long v14, v14, v16
.line 797
const-string v16, "current time %d trace time is %d s"
const/16 v17, 0x2
move/from16 v0, v17
new-array v0, v0, [Ljava/lang/Object;
move-object/from16 v17, v0
const/16 v18, 0x0
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v19
aput-object v19, v17, v18
const/16 v18, 0x1
invoke-static {v12, v13}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v12
aput-object v12, v17, v18
invoke-static/range {v16 .. v17}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 798
const-string v12, "current time minus trace time is %d s"
const/4 v13, 0x1
new-array v13, v13, [Ljava/lang/Object;
const/16 v16, 0x0
invoke-static {v14, v15}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v17
aput-object v17, v13, v16
invoke-static {v12, v13}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_7e
.catch Ljava/lang/Throwable; {:try_start_3d .. :try_end_7e} :catch_88
.line 800
const-wide/16 v12, 0x1e
cmp-long v11, v14, v12
if-ltz v11, :cond_23
.line 789
:cond_84
:goto_84
add-int/lit8 v2, v3, 0x1
move v3, v2
goto :goto_2f
.line 807
:catch_88
move-exception v2
:try_start_89
new-instance v2, Ljava/lang/StringBuilder;
const-string v12, "Trace file that has invalid format: "
invoke-direct {v2, v12}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
const/4 v11, 0x0
new-array v11, v11, [Ljava/lang/Object;
invoke-static {v2, v11}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_9e
.catch Ljava/lang/Throwable; {:try_start_89 .. :try_end_9e} :catch_9f
goto :goto_84
.line 812
:catch_9f
move-exception v2
.line 813
invoke-static {v2}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
.line 816
:cond_a3
const/4 v2, 0x0
goto/16 :goto_23
.end method
# virtual methods
.method public final a(Ljava/lang/String;)V
.registers 12
.prologue
const-wide/16 v8, 0x2710
const-wide/16 v0, -0x1
const/4 v7, 0x0
.line 421
monitor-enter p0
.line 422
:try_start_6
iget-object v2, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v2
if-eqz v2, :cond_19
.line 423
const-string/jumbo v0, "trace started return "
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 424
monitor-exit p0
.line 494
:goto_18
return-void
.line 426
:cond_19
iget-object v2, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
.line 427
monitor-exit p0
:try_end_20
.catchall {:try_start_6 .. :try_end_20} :catchall_67
.line 431
:try_start_20
const-string/jumbo v2, "read trace first dump for create time!"
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
invoke-static {v2, v3}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 433
const/4 v2, 0x0
invoke-static {p1, v2}, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper;->readFirstDumpInfo(Ljava/lang/String;Z)Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;
move-result-object v2
.line 434
if-eqz v2, :cond_123
.line 435
iget-wide v4, v2, Lcom/tencent/bugly/crashreport/crash/anr/TraceFileHelper$a;->c:J
.line 438
:goto_32
cmp-long v0, v4, v0
if-nez v0, :cond_43
.line 440
const-string/jumbo v0, "trace dump fail could not get time!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 441
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
.line 444
:cond_43
iget-wide v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->b:J
sub-long v0, v4, v0
invoke-static {v0, v1}, Ljava/lang/Math;->abs(J)J
move-result-wide v0
cmp-long v0, v0, v8
if-gez v0, :cond_6a
.line 445
const-string/jumbo v0, "should not process ANR too Fre in %d"
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
const/16 v3, 0x2710
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_61
.catch Ljava/lang/Throwable; {:try_start_20 .. :try_end_61} :catch_f8
.catchall {:try_start_20 .. :try_end_61} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto :goto_18
.line 427
:catchall_67
move-exception v0
monitor-exit p0
throw v0
.line 449
:cond_6a
:try_start_6a
iput-wide v4, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->b:J
.line 452
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
:try_end_72
.catch Ljava/lang/Throwable; {:try_start_6a .. :try_end_72} :catch_f8
.catchall {:try_start_6a .. :try_end_72} :catchall_11c
.line 454
:try_start_72
sget v0, Lcom/tencent/bugly/crashreport/crash/c;->f:I
const/4 v1, 0x0
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/z;->a(IZ)Ljava/util/Map;
:try_end_78
.catch Ljava/lang/Throwable; {:try_start_72 .. :try_end_78} :catch_8f
.catchall {:try_start_72 .. :try_end_78} :catchall_11c
move-result-object v6
.line 465
if-eqz v6, :cond_81
:try_start_7b
invoke-interface {v6}, Ljava/util/Map;->size()I
move-result v0
if-gtz v0, :cond_a2
.line 466
:cond_81
const-string v0, "can\'t get all thread skip this anr"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_89
.catch Ljava/lang/Throwable; {:try_start_7b .. :try_end_89} :catch_f8
.catchall {:try_start_7b .. :try_end_89} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto :goto_18
.line 459
:catch_8f
move-exception v0
.line 460
:try_start_90
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
.line 461
const-string v0, "get all thread stack fail!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_9b
.catch Ljava/lang/Throwable; {:try_start_90 .. :try_end_9b} :catch_f8
.catchall {:try_start_90 .. :try_end_9b} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto/16 :goto_18
.line 470
:cond_a2
:try_start_a2
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
const-wide/16 v2, 0x2710
invoke-direct {p0, v0, v2, v3}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Landroid/content/Context;J)Landroid/app/ActivityManager$ProcessErrorStateInfo;
move-result-object v0
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
.line 473
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
if-nez v0, :cond_c0
.line 475
const-string/jumbo v0, "proc state is unvisiable!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_b9
.catch Ljava/lang/Throwable; {:try_start_a2 .. :try_end_b9} :catch_f8
.catchall {:try_start_a2 .. :try_end_b9} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto/16 :goto_18
.line 479
:cond_c0
:try_start_c0
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
iget v0, v0, Landroid/app/ActivityManager$ProcessErrorStateInfo;->pid:I
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v1
if-eq v0, v1, :cond_e0
.line 480
const-string v0, "not mind proc!"
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
iget-object v3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
iget-object v3, v3, Landroid/app/ActivityManager$ProcessErrorStateInfo;->processName:Ljava/lang/String;
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_d9
.catch Ljava/lang/Throwable; {:try_start_c0 .. :try_end_d9} :catch_f8
.catchall {:try_start_c0 .. :try_end_d9} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto/16 :goto_18
.line 484
:cond_e0
:try_start_e0
const-string v0, "found visiable anr , start to process!"
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 486
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
iget-object v3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
move-object v0, p0
move-object v2, p1
invoke-direct/range {v0 .. v6}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Landroid/content/Context;Ljava/lang/String;Landroid/app/ActivityManager$ProcessErrorStateInfo;JLjava/util/Map;)Z
:try_end_f1
.catch Ljava/lang/Throwable; {:try_start_e0 .. :try_end_f1} :catch_f8
.catchall {:try_start_e0 .. :try_end_f1} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto/16 :goto_18
.line 487
:catch_f8
move-exception v0
.line 488
:try_start_f9
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
move-result v1
if-nez v1, :cond_102
.line 489
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
.line 491
:cond_102
const-string v1, "handle anr error %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->toString()Ljava/lang/String;
move-result-object v0
aput-object v0, v2, v3
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->e(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_115
.catchall {:try_start_f9 .. :try_end_115} :catchall_11c
.line 493
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
goto/16 :goto_18
:catchall_11c
move-exception v0
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v1, v7}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
throw v0
:cond_123
move-wide v4, v0
goto/16 :goto_32
.end method
.method public final a(Z)V
.registers 7
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 610
invoke-direct {p0, p1}, Lcom/tencent/bugly/crashreport/crash/anr/b;->c(Z)V
.line 613
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->i()Z
move-result v0
.line 614
invoke-static {}, Lcom/tencent/bugly/crashreport/common/strategy/a;->a()Lcom/tencent/bugly/crashreport/common/strategy/a;
move-result-object v3
.line 615
if-eqz v3, :cond_1a
.line 616
if-eqz v0, :cond_31
invoke-virtual {v3}, Lcom/tencent/bugly/crashreport/common/strategy/a;->c()Lcom/tencent/bugly/crashreport/common/strategy/StrategyBean;
move-result-object v0
iget-boolean v0, v0, Lcom/tencent/bugly/crashreport/common/strategy/StrategyBean;->g:Z
if-eqz v0, :cond_31
move v0, v1
.line 618
:cond_1a
:goto_1a
invoke-direct {p0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->h()Z
move-result v3
if-eq v0, v3, :cond_30
.line 619
const-string v3, "anr changed to %b"
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v4
aput-object v4, v1, v2
invoke-static {v3, v1}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 620
invoke-direct {p0, v0}, Lcom/tencent/bugly/crashreport/crash/anr/b;->b(Z)V
.line 622
:cond_30
return-void
:cond_31
move v0, v2
.line 616
goto :goto_1a
.end method
.method public final a()Z
.registers 2
.prologue
.line 351
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I
move-result v0
if-eqz v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public final a(Lcom/tencent/bugly/proguard/aa;)Z
.registers 10
.prologue
const/4 v7, 0x1
const/4 v0, 0x0
.line 699
new-instance v6, Ljava/util/HashMap;
invoke-direct {v6}, Ljava/util/HashMap;-><init>()V
.line 701
invoke-virtual {p1}, Lcom/tencent/bugly/proguard/aa;->e()Landroid/os/Looper;
move-result-object v1
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_83
move v1, v7
.line 704
:goto_16
if-eqz v1, :cond_75
.line 705
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
const-wide/16 v2, 0x2710
invoke-direct {p0, v1, v2, v3}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Landroid/content/Context;J)Landroid/app/ActivityManager$ProcessErrorStateInfo;
move-result-object v1
iput-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
.line 708
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
if-nez v1, :cond_2e
.line 710
const-string v1, "anr handler onThreadBlock proc state is unvisiable!"
new-array v2, v0, [Ljava/lang/Object;
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 732
:goto_2d
return v0
.line 714
:cond_2e
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
iget v1, v1, Landroid/app/ActivityManager$ProcessErrorStateInfo;->pid:I
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v2
if-eq v1, v2, :cond_47
.line 715
const-string/jumbo v1, "onThreadBlock not mind proc!"
new-array v2, v7, [Ljava/lang/Object;
iget-object v3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
iget-object v3, v3, Landroid/app/ActivityManager$ProcessErrorStateInfo;->processName:Ljava/lang/String;
aput-object v3, v2, v0
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
goto :goto_2d
.line 720
:cond_47
const v1, 0x30d40
const/4 v2, 0x0
:try_start_4b
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/z;->a(IZ)Ljava/util/Map;
:try_end_4e
.catch Ljava/lang/Throwable; {:try_start_4b .. :try_end_4e} :catch_67
move-result-object v6
.line 727
:goto_4f
const-string/jumbo v1, "onThreadBlock found visiable anr , start to process!"
new-array v0, v0, [Ljava/lang/Object;
invoke-static {v1, v0}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 728
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->c:Landroid/content/Context;
const-string v2, ""
iget-object v3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->m:Landroid/app/ActivityManager$ProcessErrorStateInfo;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
move-object v0, p0
invoke-direct/range {v0 .. v6}, Lcom/tencent/bugly/crashreport/crash/anr/b;->a(Landroid/content/Context;Ljava/lang/String;Landroid/app/ActivityManager$ProcessErrorStateInfo;JLjava/util/Map;)Z
:goto_65
move v0, v7
.line 732
goto :goto_2d
.line 722
:catch_67
move-exception v1
.line 723
invoke-static {v1}, Lcom/tencent/bugly/proguard/x;->b(Ljava/lang/Throwable;)Z
.line 724
const-string v2, "main"
invoke-virtual {v1}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-interface {v6, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_4f
.line 730
:cond_75
const-string v1, "anr handler onThreadBlock only care main thread ,current thread is: %s"
new-array v2, v7, [Ljava/lang/Object;
invoke-virtual {p1}, Lcom/tencent/bugly/proguard/aa;->d()Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v0
invoke-static {v1, v2}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
goto :goto_65
:cond_83
move v1, v0
goto :goto_16
.end method
.method protected final b()V
.registers 14
.prologue
const/4 v0, 0x0
.line 628
invoke-static {}, Lcom/tencent/bugly/proguard/z;->b()J
move-result-wide v2
sget-wide v4, Lcom/tencent/bugly/crashreport/crash/c;->g:J
sub-long/2addr v2, v4
.line 629
new-instance v1, Ljava/io/File;
iget-object v4, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->g:Ljava/lang/String;
invoke-direct {v1, v4}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 630
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v4
if-eqz v4, :cond_24
invoke-virtual {v1}, Ljava/io/File;->isDirectory()Z
move-result v4
if-eqz v4, :cond_24
.line 632
:try_start_1b
invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v4
.line 633
if-eqz v4, :cond_24
array-length v1, v4
if-nez v1, :cond_25
.line 667
:cond_24
:goto_24
return-void
.line 636
:cond_25
const-string v5, "bugly_trace_"
.line 637
const-string v6, ".txt"
.line 638
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v7
.line 640
array-length v8, v4
move v1, v0
:goto_2f
if-ge v1, v8, :cond_86
aget-object v9, v4, v1
.line 641
invoke-virtual {v9}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v10
.line 642
new-instance v11, Ljava/lang/StringBuilder;
const-string v12, "Number Trace file : "
invoke-direct {v11, v12}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v11, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
const/4 v12, 0x0
new-array v12, v12, [Ljava/lang/Object;
invoke-static {v11, v12}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 643
invoke-virtual {v10, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
:try_end_4f
.catch Ljava/lang/Throwable; {:try_start_1b .. :try_end_4f} :catch_9c
move-result v11
if-eqz v11, :cond_64
.line 645
:try_start_52
invoke-virtual {v10, v6}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v11
.line 646
if-lez v11, :cond_7d
.line 647
invoke-virtual {v10, v7, v11}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
invoke-static {v11}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
:try_end_5f
.catch Ljava/lang/Throwable; {:try_start_52 .. :try_end_5f} :catch_67
move-result-wide v10
.line 648
cmp-long v10, v10, v2
if-ltz v10, :cond_7d
.line 640
:cond_64
:goto_64
add-int/lit8 v1, v1, 0x1
goto :goto_2f
.line 653
:catch_67
move-exception v11
:try_start_68
new-instance v11, Ljava/lang/StringBuilder;
const-string v12, "Trace file that has invalid format: "
invoke-direct {v11, v12}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v11, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
const/4 v11, 0x0
new-array v11, v11, [Ljava/lang/Object;
invoke-static {v10, v11}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
.line 657
:cond_7d
invoke-virtual {v9}, Ljava/io/File;->delete()Z
move-result v9
if-eqz v9, :cond_64
.line 658
add-int/lit8 v0, v0, 0x1
goto :goto_64
.line 662
:cond_86
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Number of overdue trace files that has deleted: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->c(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_9b
.catch Ljava/lang/Throwable; {:try_start_68 .. :try_end_9b} :catch_9c
goto :goto_24
.line 663
:catch_9c
move-exception v0
.line 664
invoke-static {v0}, Lcom/tencent/bugly/proguard/x;->a(Ljava/lang/Throwable;)Z
goto :goto_24
.end method
.method public final declared-synchronized c()V
.registers 3
.prologue
.line 675
monitor-enter p0
:try_start_1
const-string v0, "customer decides whether to open or close."
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/tencent/bugly/proguard/x;->d(Ljava/lang/String;[Ljava/lang/Object;)Z
:try_end_9
.catchall {:try_start_1 .. :try_end_9} :catchall_b
.line 676
monitor-exit p0
return-void
.line 675
:catchall_b
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final d()Z
.registers 5
.prologue
.line 739
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
if-eqz v0, :cond_e
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v0}, Lcom/tencent/bugly/proguard/ab;->isAlive()Z
move-result v0
if-eqz v0, :cond_e
.line 741
const/4 v0, 0x0
.line 756
:goto_d
return v0
.line 743
:cond_e
new-instance v0, Lcom/tencent/bugly/proguard/ab;
invoke-direct {v0}, Lcom/tencent/bugly/proguard/ab;-><init>()V
iput-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
.line 744
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Bugly-ThreadMonitor"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v2, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->l:I
add-int/lit8 v3, v2, 0x1
iput v3, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->l:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/tencent/bugly/proguard/ab;->setName(Ljava/lang/String;)V
.line 745
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v0}, Lcom/tencent/bugly/proguard/ab;->a()V
.line 746
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v0, p0}, Lcom/tencent/bugly/proguard/ab;->a(Lcom/tencent/bugly/proguard/ac;)V
.line 747
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v0}, Lcom/tencent/bugly/proguard/ab;->d()Z
move-result v0
.line 748
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->e:Lcom/tencent/bugly/proguard/w;
new-instance v2, Lcom/tencent/bugly/crashreport/crash/anr/b$3;
invoke-direct {v2, p0}, Lcom/tencent/bugly/crashreport/crash/anr/b$3;-><init>(Lcom/tencent/bugly/crashreport/crash/anr/b;)V
invoke-virtual {v1, v2}, Lcom/tencent/bugly/proguard/w;->a(Ljava/lang/Runnable;)Z
goto :goto_d
.end method
.method public final e()Z
.registers 3
.prologue
.line 763
const/4 v0, 0x0
.line 764
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
if-eqz v1, :cond_18
.line 765
iget-object v0, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v0}, Lcom/tencent/bugly/proguard/ab;->c()Z
move-result v0
.line 766
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v1}, Lcom/tencent/bugly/proguard/ab;->b()V
.line 767
iget-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
invoke-virtual {v1, p0}, Lcom/tencent/bugly/proguard/ab;->b(Lcom/tencent/bugly/proguard/ac;)V
.line 768
const/4 v1, 0x0
iput-object v1, p0, Lcom/tencent/bugly/crashreport/crash/anr/b;->k:Lcom/tencent/bugly/proguard/ab;
.line 770
:cond_18
return v0
.end method