[Backtracing] Add ImageMap instead of just using an Array.

We want to be able to efficiently serialise lists of images, and to do so
it makes most sense to create a separate `ImageMap` type.  This also provides
a useful place to put methods to e.g. find an image by address or by build
ID.

rdar://124913332
This commit is contained in:
Alastair Houghton
2024-11-15 12:36:38 +00:00
parent 760cc57bef
commit 0e3e9efcd3
16 changed files with 1501 additions and 224 deletions

View File

@@ -52,7 +52,7 @@ class Target {
var faultAddress: Address
var crashingThread: TargetThread.ThreadID
var images: [Backtrace.Image] = []
var images: ImageMap
var threads: [TargetThread] = []
var crashingThreadNdx: Int = -1
@@ -133,8 +133,7 @@ class Target {
signal = crashInfo.signal
faultAddress = crashInfo.fault_address
images = Backtrace.captureImages(using: reader,
forProcess: Int(pid))
images = ImageMap.capture(using: reader, forProcess: Int(pid))
do {
try fetchThreads(threadListHead: Address(crashInfo.thread_list),