Proyectos de Subversion Iphone Microlearning

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
// Copyright 2019 Google
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//      http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
 
15
#pragma once
16
 
17
#include <mach/mach.h>
18
#include <stdbool.h>
19
 
20
#include "Crashlytics/Crashlytics/Helpers/FIRCLSFile.h"
21
 
22
typedef struct {
23
  // task info
24
  mach_port_t task;
25
 
26
  // thread stuff
27
  thread_t thisThread;
28
  thread_t crashedThread;
29
  thread_act_array_t threads;
30
  mach_msg_type_number_t threadCount;
31
  void *uapVoid;  // current thread state
32
} FIRCLSProcess;
33
 
34
bool FIRCLSProcessInit(FIRCLSProcess *process, thread_t crashedThread, void *uapVoid);
35
bool FIRCLSProcessDebuggerAttached(void);
36
 
37
bool FIRCLSProcessSuspendAllOtherThreads(FIRCLSProcess *process);
38
bool FIRCLSProcessResumeAllOtherThreads(FIRCLSProcess *process);
39
 
40
void FIRCLSProcessRecordThreadNames(FIRCLSProcess *process, FIRCLSFile *file);
41
void FIRCLSProcessRecordDispatchQueueNames(FIRCLSProcess *process, FIRCLSFile *file);
42
bool FIRCLSProcessRecordAllThreads(FIRCLSProcess *process, FIRCLSFile *file);
43
void FIRCLSProcessRecordStats(FIRCLSProcess *process, FIRCLSFile *file);
44
void FIRCLSProcessRecordRuntimeInfo(FIRCLSProcess *process, FIRCLSFile *file);