HeadlinesBriefing HeadlinesBriefing.com

C++26 يضيف رأس قياسي <debugging> للنقاط المتوقفة

Hacker News •
×

أضيف إلى C++26 رأس قياسي <debugging> يحتوي على ثلاث وظائف noexcept: std::breakpoint()، std::is_debugger_present() و std::breakpoint_if_debugging(). هذا يلغي الحاجة إلى ماكرو محددة للمنصة مثل __debugbreak() أو التجميع inline. الرأس freestanding وقابل للاستبدال، مما يسمح بتنفيذ مخصص على الأنظمة العارية. std::breakpoint() يُفعّل توقف المُصحِّح إذا تم attachment، وإلا فإن سلوكه معرف من قبل التنفيذ (مثل SIGTRAP). std::is_debugger_present() يتحقق من ملحق المُصحِّح النشط في الوقت الحقيقي، مع تنفيذ محدد للمنصة (مثل API Windows أو /proc/self/status على Linux). قابلية الاستبدال تمكّن من الاستخدام في بيئات freestanding. std::breakpoint_if_debugging() يجمع بينهما لنقاط توقف مشروطة، مُقلِّدًا الأنماط المستخدمة في Boost.Test، Catch2، Dear ImGui و Unreal Engine. الميزة تُدرِّج إعادة اختراع العجلة طويلة الأمد في مشاريع C++، مما يبسط أدوات التصحيح عبر المنصات.

المصدر: Hacker News · لخّصه HeadlinesBriefing