c++ - undefined reference to pthread_create'




كيفية تسمية موضوع في لينكس؟ (2)

هذا السؤال لديه بالفعل إجابة هنا:

لدي تطبيق Linux متعدد مؤشرات الترابط مكتوب بلغة C / C ++. لقد اخترت أسماء المواضيع الخاصة بي . للمساعدة في تصحيح الأخطاء ، أود أن تكون هذه الأسماء مرئية في GDB و "top" ، إلخ. هل هذا ممكن ، وإذا كان الأمر كذلك كيف؟

(هناك العديد من الأسباب لمعرفة اسم مؤشر الترابط . الآن أريد أن أعرف أي مؤشر ترابط يشغل 50٪ من وحدة المعالجة المركزية (كما ورد في "أعلى"). وعند تصحيح الأخطاء ، غالبًا ما أحتاج إلى التبديل إلى مؤشر ترابط مختلف - حاليًا يجب أن تفعل " thread apply all bt " ثم ابحث في صفحات إخراج backtrace للعثور على مؤشر الترابط الصحيح).

الحل ويندوز هنا ؛ ما هو لينكس؟


Posix المواضيع؟

من الواضح أن هذا لن يترجم ، لكنه سيعطيك فكرة عن أين تذهب للصيد. لست متأكدًا من أنه الأمر PR_ الصحيح ، لكنني أعتقد أنه كذلك. لقد مر وقت طويل...

  #include <sys/prctl.h>
  prctl(PR_SET_NAME,"<null> terminated string",0,0,0)

إذا كنت تستخدم مكتبة مثل ACE فإن مؤشر Thread لديه طريقة لتحديد اسم سلسلة الرسائل عند إنشاء سلسلة رسائل جديدة.

يحتوي BSD Unix أيضًا على استدعاء pthread_set_name_np .

خلاف ذلك يمكنك استخدام prctl كما ذكر Fusspawn.





multithreading