سؤال

بشكل عام أرى العملية pid التي تعمل في الخلفية وتبدأ DBX في تلك العملية باستخدام الأمر dbx -a <pid>

وبالمثل كيف يمكنني فعل ذلك باستخدام GDB؟

هل كانت مفيدة؟

المحلول

هناك طريقتان.

من سطر الأوامر ، قم بتضمين PID كوسيطة بعد الاسم القابل للتنفيذ:

gdb /path/to/prog PID

من داخل GDB ، يمكنك استخدام أمر إرفاق:

gdb /path/to/prog
gdb> attach PID

على الرغم من أن التحديد في سطر الأوامر أكثر إيجازًا ، إلا أن هناك خطرًا بسيطًا أنه إذا كان لديك ملف أساسي يحتوي على اسم يشبه PID (أي لـ PID 2345 ، فيجب تسمية الملف الأساسي "2345 ") ثم سيفتح GDB الملف الأساسي. من المسلم به أن فرصة الحدوث هذه ضئيلة.

نصائح أخرى

بالإضافة إلى السابق يمكنك استخدامه مباشرة

gdb -p <pid>

من صفحة GDB Man:

يمكنك ، بدلاً من ذلك ، تحديد معرف العملية كوسيطة ثانية ، إذا كنت ترغب في تصحيح عملية التشغيل:

gdb program 1234
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top