تعيين نقطة مراقبة على errno في gdb
-
11-12-2019 - |
سؤال
أحاول معرفة متى يتغير errno.
في البداية حاولت "watch errno" في gdb، مما أدى إلى حدوث الخطأ
Cannot find thread-local variables on this target
لقد تمكنت من إصلاح هذا عن طريق التحويل البرمجي باستخدام "-pthread".ومع ذلك، فإنه لا يزال لا يعمل والآن أحصل على الخطأ
Cannot find shared library `/usr/lib/debug/lib/x86_64-linux-gnu/libc-2.13.so' in dynamic linker's load module list
عندما أكتب "شاهد errno".ما الذي يجب علي فعله حتى يعمل تعيين نقطة مراقبة على errno؟
المحلول
errno
لم يعد مجرد متغير ثابت بعد الآن.إليك كيف تظهر تطبيقات userland على Linux (من ملفي المحلي /usr/include/x86_64-linux-gnu/bits/errno.h
):
# define errno (*__errno_location ())
هذا للحصول على حالة الخطأ لكل موضوع.
لا تنتمي إلى StackOverflow