How can I exit lldb after running commands with -o -
मैं एक स्क्रिप्ट से निम्न कमांड की तरह कुछ भागना चाहता हूं:
lldb -f / path / to / my / file -o command1 -o कमांड 2 ... -o अलग करें क्या इंटरैक्टिव मोड को दर्ज किए बिना निष्पादन के बाद lldb से बाहर निकलने का कोई तरीका है? आउट-ओ एक्सेगमेंट पास करना या -ओ छोड़ने के साथ विफल रहता है "after_file कमांड एक्जीक्यूशन, कमांड: 'छोड़ दिया' विफल।" उपरोक्त आदेश को बिना किसी बाहर निकलने या बाहर निकलने के साथ ही टर्मिनल को एलएलडीबी प्रॉम्प्ट पर छोड़ दिया जाता है, जो मुझे सिर्फ इस कमांड को चलाने से रोकता है और आउटपुट को डिस्क पर कहीं रीडायरेक्ट करता है।
इसका अंतिम लक्ष्य प्राप्त करना है कुछ चीजें होने पर मेरी कमांड की मांग पर मांग। इस मंच पर एक पायथन इंटरप्रेटर नहीं है, इसलिए यह एक विकल्प नहीं है कोई सुझाव?
यह मेरे लिए काम करता है:
$ xcrun lldb / Bin / ls -o "b malloc" -o "run" -o "स्क्रिप्ट आयात ओएस; os._exit (1)"
(lldb) लक्ष्य बनाने के लिए "/ bin / ls"
वर्तमान निष्पादन योग्य '/ bin / ls' (x86_64) पर सेट है।
(lldb) b malloc
ब्रेकपॉइंट 1: 3 स्थान।
( lldb) चलाने
640 प्रक्रिया शुरू की: '/ bin / ls' (x86_64)
(lldb) स्क्रिप्ट आयात ओएस; os._exit (1)
प्रक्रिया 640 बंद कर दिया * धागा # 1: टीआईडी = 0x11033, 0x00007fff9374136b libsystem_malloc.dylib malloc, कारण रोक = ब्रेकप्वाइंट 1.2 फ्रेम # 0: 0x00007fff9374136b libsystem_malloc.dylib मॉलोक लिब्ससिस्टम_मॉलोक डाइलीब` माल्लक: - & gt; 0x7fff9374136b: pushq% RBP 0x7fff9374136c: movq% आरएसपी,% RBP 0x7fff9374136f: pushq% Rbx 0x7fff93741370: pushq% Rax $ (संकेत को वापस करने के लिए)
, सकल की तरह है, लेकिन महल की कुंजी है:
-o "स्क्रिप्ट आयात ओएस; os._exit (1)" sys.exit (1) जीता ' टी काम (हम इसे पकड़ते हैं और इसे एलएलडीबी से बाहर निकलने से रोकते हैं), लेकिन os._exit () एक खुली फ्रीबी है इस पर एक बग पर विचार करें।
Comments
Post a Comment