Определение того, запущено ли приложение iOS в отладчике

Вы посмотрели ipython? Это не совсем как "gui". Никакие смайлики, извините.;-), Это - довольно хорошая интерактивная оболочка для Python все же.

редактирование: Я вижу, что Вы пересмотрели свой вопрос подчеркнуть важность GUI. В этом случае IPython не был бы хорошим соответствием.

Мог бы также сохранить Вас другой тупик: Я пошел, смотря на DrPython, надеясь, что это будет подобно DrScheme PLT, который выглядит сопоставимым с примером, который Вы связали также. К сожалению, DrPython не все это во многом как DrScheme.

43
задан Axel 20 January 2011 в 08:26
поделиться

1 ответ

Базирующийся прочь ответ в дублирующемся потоке , который был для Objective C также и показал, как HockeyApp-iOS делает это, вот Быстрые 5 версий:

let isDebuggerAttached: Bool = {
    var debuggerIsAttached = false

    var name: [Int32] = [CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()]
    var info: kinfo_proc = kinfo_proc()
    var info_size = MemoryLayout<kinfo_proc>.size

    let success = name.withUnsafeMutableBytes { (nameBytePtr: UnsafeMutableRawBufferPointer) -> Bool in
        guard let nameBytesBlindMemory = nameBytePtr.bindMemory(to: Int32.self).baseAddress else { return false }
        return -1 != sysctl(nameBytesBlindMemory, 4, &info/*UnsafeMutableRawPointer!*/, &info_size/*UnsafeMutablePointer<Int>!*/, nil, 0)
    }

    // The original HockeyApp code checks for this; you could just as well remove these lines:
    if !success {
        debuggerIsAttached = false
    }

    if !debuggerIsAttached && (info.kp_proc.p_flag & P_TRACED) != 0 {
        debuggerIsAttached = true
    }

    return debuggerIsAttached
}()
1
ответ дан 26 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: