منصوبے کے بارے میں

BTrace چلتی ہوئی جاوا ایپلیکیشنز کو متحرک طور پر انسٹرومنٹ کرتا ہے، رن ٹائم پر ٹریسنگ کوڈ انجیکٹ کرتا ہے تاکہ آپ ہدف کو ری اسٹارٹ یا ری کمپائل کیے بغیر رویے کا مشاہدہ کر سکیں۔ یہ پروجیکٹ پروڈکشن سیفٹی پر زور دیتا ہے: اسکرپٹس کی تصدیق کی جاتی ہے، اور README میں کہا گیا ہے کہ تصدیق شدہ اسکرپٹس ایپلیکیشن کو کریش نہیں کر سکتیں۔ اوور ہیڈ کو کم بتایا گیا ہے، جو بائٹ کوڈ انجیکشن کے ذریعے حاصل ہوتا ہے۔ معاون رن ٹائمز: BTrace 3.0 جاوا 8–25+ پر چلتا ہے، جاوا 17 سے پرانے JVMs کے خلاف چلانا ڈیپریکیٹڈ ہے (3.x میں وارننگ کے ساتھ اب بھی فعال؛ 4.0 میں ہٹانے کا منصوبہ ہے)۔ ایک مائیگریشن گائیڈ 2.x سے اپ گریڈ کرنے کا احاطہ کرتی ہے۔ README میں نمایاں صلاحیتیں: - میتھڈ انٹری/ایگزٹ، ٹائمنگز، فیلڈ ایکسیس اور ایلوکیشنز کے لیے پروبس۔ - میتھڈ ٹائمنگ، ایکسپشن ٹریکنگ، اور اینوٹیٹڈ جاوا کلاسز کے طور پر لکھے گئے کسٹم پروبس (مثلاً @OnMethod بمع @Self اور @Duration پیرامیٹرز)۔ - فوری ڈیبگنگ کے لیے DTrace طرز کے ون لائنرز: لوکیشنز (@entry، @return، @error)، ایکشنز (print، count، time، stack)، فلٹرز (duration thresholds، argument comparisons)، اور وائلڈ کارڈ یا ریجیکس کلاس/میتھڈ پیٹرنز۔ انسٹالیشن اور پیکیجنگ کے اختیارات میں JBang (تجویز کردہ، شائع شدہ کیٹلاگ کے ساتھ زیرو انسٹال)، SDKMan، دستی بائنری آرکائیوز، RPM/DEB پیکیجز، اور Docker امیجز (Debian، Alpine، Distroless ویریئنٹس) شامل ہیں۔ ایک فیٹ ایجنٹ JAR بلڈ Spark، Hadoop اور Kubernetes جیسے ماحول کے لیے سنگل JAR ڈیپلائمنٹ کو سپورٹ کرتا ہے، منتخب ایکسٹینشنز کو ایمبیڈ کرنے کے لیے ایک Gradle پلگ ان (io.btrace.fat-agent) کے ساتھ۔ ایک Maven اسکرپٹ کمپائلیشن پلگ ان الگ ریپوزٹری میں موجود ہے۔ ایکسٹینشنز ایک مستحکم بوٹ اسٹریپ API کے ذریعے الگ تھلگ امپلیمنٹیشنز کے ساتھ فعالیت شامل کرتی ہیں۔ لیگیسی libs/profiles میکانزم ہٹا دیا گیا ہے؛ انٹیگریشنز کو ایکسٹینشنز کے طور پر پیکج کیا جانا چاہیے۔ ایک پرمیشن ماڈل ڈیفالٹ پرمیشنز (MESSAGING، AGGREGATION، JFR_EVENTS، PROFILING)، اسٹینڈرڈ پرمیشنز (FILE_READ، SYSTEM_PROPS، THREAD_INFO، MEMORY_INFO) اور پرائیویلیجڈ پرمیشنز (FILE_WRITE، NETWORK، THREADS، NATIVE، EXEC، REFLECTION، CLASSLOADER، UNLIMITED_MEMORY) میں فرق کرتا ہے۔ پرائیویلیجڈ گرانٹس ایجنٹ آپشنز یا پالیسی فائل کے ذریعے سیٹ کیے جاتے ہیں؛ allow/deny لسٹس ایکسٹینشن لنکنگ کو کنٹرول کرتی ہیں، اور بلاک شدہ امپلیمنٹیشنز SHIMs پر واپس آ جاتی ہیں تاکہ پروبس محفوظ طریقے سے جاری رہیں۔ btracex CLI ایکسٹینشنز اور پالیسی کا معائنہ اور انتظام کرتا ہے، بشمول allow/deny حالت کو براؤز اور ٹوگل کرنے کے لیے ایک انٹرایکٹو ٹرمینل UI۔ دستاویزات میں ایک کوئیک ریفرنس، گٹنگ اسٹارٹڈ ٹیوٹوریل، مکمل ٹیوٹوریل، ون لائنر گائیڈ، ایکسٹینشن ڈیولپمنٹ گائیڈ اور ایک دستاویزات ہب شامل ہیں۔ کمیونٹی چینلز Slack، Gitter اور GitHub Issues ہیں۔ شراکت کے لیے Oracle Contributor Agreement پر دستخط درکار ہیں۔ Apache 2.0 کے تحت لائسنس یافتہ؛ ASM، JCTools اور hppcrt کے ساتھ بنایا گیا۔