https://github.com/al13n321/nnd
یه دیباگر جالب که برای لینوکس تحت tui توسعه داده شده
رابط کاربریش خیلی مشتیه خواستید امتحان کنید
خودم میخوام ازش همین هفته استفاده بکنم ببینم چطوریه
یه دیباگر جالب که برای لینوکس تحت tui توسعه داده شده
رابط کاربریش خیلی مشتیه خواستید امتحان کنید
خودم میخوام ازش همین هفته استفاده بکنم ببینم چطوریه
GitHub
GitHub - al13n321/nnd: A debugger for Linux
A debugger for Linux. Contribute to al13n321/nnd development by creating an account on GitHub.
اگه یه وقت به گذرتون خورد که میخواستید توی لیبره آفیس یه کدی رو رنگامیزی نحوی (syntax highlighting) کنید میتونید از افزونه زیر استفاده کنید :
https://extensions.libreoffice.org/en/extensions/show/code-highlighter
https://extensions.libreoffice.org/en/extensions/show/code-highlighter
👍6❤1
https://github.com/rohanrhu/gdb-frontend
پوسته جذاب و کارامدیه برای gdb
اگه نتونم zeditor رو برای مسخره بازی هایی که میخوام بکنم با دیباگر ها آماده بکنم از همین استفاده میکنم
پوسته جذاب و کارامدیه برای gdb
اگه نتونم zeditor رو برای مسخره بازی هایی که میخوام بکنم با دیباگر ها آماده بکنم از همین استفاده میکنم
GitHub
GitHub - rohanrhu/gdb-frontend: ☕ GDBFrontend is an easy, flexible and extensible gui debugger.
☕ GDBFrontend is an easy, flexible and extensible gui debugger. - rohanrhu/gdb-frontend
نمیدانم
https://github.com/rohanrhu/gdb-frontend پوسته جذاب و کارامدیه برای gdb اگه نتونم zeditor رو برای مسخره بازی هایی که میخوام بکنم با دیباگر ها آماده بکنم از همین استفاده میکنم
خب در نهایت بعد کلی گردش بین کلی ابزار و تنظیمات مختلف به
gf2 : https://github.com/nakst/gf
رسیدیم و راضی شدیم
حالا شاید براتون سوال باشه که خب چرا اینهمه دارم میگردم دنبال دیباگر و خب دیباگر vscode یا zeditor هم هستشون و نیاز نیست و این حرفا
ولی خب ۲ تا نکته وجود داره و کاری که با دیباگر میخوام بکنم صرفا با یه gdb یا lldb ساده انجام پذیر نیست
gf2 : https://github.com/nakst/gf
رسیدیم و راضی شدیم
حالا شاید براتون سوال باشه که خب چرا اینهمه دارم میگردم دنبال دیباگر و خب دیباگر vscode یا zeditor هم هستشون و نیاز نیست و این حرفا
ولی خب ۲ تا نکته وجود داره و کاری که با دیباگر میخوام بکنم صرفا با یه gdb یا lldb ساده انجام پذیر نیست
GitHub
GitHub - nakst/gf: A GDB frontend for Lïnux.
A GDB frontend for Lïnux. Contribute to nakst/gf development by creating an account on GitHub.
نمیدانم
خب در نهایت بعد کلی گردش بین کلی ابزار و تنظیمات مختلف به gf2 : https://github.com/nakst/gf رسیدیم و راضی شدیم حالا شاید براتون سوال باشه که خب چرا اینهمه دارم میگردم دنبال دیباگر و خب دیباگر vscode یا zeditor هم هستشون و نیاز نیست و این حرفا ولی خب ۲ تا…
چیزی که میخوام دیباگ کنم یه هلوورد ساده نیست که بتونیم با next و step دیباگش کنیم
تخمینی که دارم اینه که حدود ۵۰ میلیون دستور داره اجرا میشه و میخوام تحلیل کنم که این سامانه چرا داره به قهقرا میره و اخرش میترکه
در این وضعیت حتی اگه breakpoint هم بذاری و در هر مرحله بپری به بریکپوینت بعدی هم پاسخگو نیست و یا اینطوریه که کلا یه بار به اون میخوری یا ۱۰۰۰۰ بار به توقفگاه میخوری و خب متوجه نمیشی داری چه اتفاقی میوفته یا اینکه بینهایت طول میکشه و خسته میشی و باز هم به هدفت نمیرسی
تخمینی که دارم اینه که حدود ۵۰ میلیون دستور داره اجرا میشه و میخوام تحلیل کنم که این سامانه چرا داره به قهقرا میره و اخرش میترکه
در این وضعیت حتی اگه breakpoint هم بذاری و در هر مرحله بپری به بریکپوینت بعدی هم پاسخگو نیست و یا اینطوریه که کلا یه بار به اون میخوری یا ۱۰۰۰۰ بار به توقفگاه میخوری و خب متوجه نمیشی داری چه اتفاقی میوفته یا اینکه بینهایت طول میکشه و خسته میشی و باز هم به هدفت نمیرسی
نمیدانم
چیزی که میخوام دیباگ کنم یه هلوورد ساده نیست که بتونیم با next و step دیباگش کنیم تخمینی که دارم اینه که حدود ۵۰ میلیون دستور داره اجرا میشه و میخوام تحلیل کنم که این سامانه چرا داره به قهقرا میره و اخرش میترکه در این وضعیت حتی اگه breakpoint هم بذاری و در…
اینجاست که یه ایده به سرم زد که یه سری توقفگاه داشته باشیم که اینا یه سری پرچم داشته باشن که با روشن خاموش شدن این پرچم ها بقیه توقفگاه هارو فعال و غیر فعال کنن
نمیدانم
اینجاست که یه ایده به سرم زد که یه سری توقفگاه داشته باشیم که اینا یه سری پرچم داشته باشن که با روشن خاموش شدن این پرچم ها بقیه توقفگاه هارو فعال و غیر فعال کنن
حالا سوالی که شاید داشته باشید اینه که چطوری میشه اینکارو کرد؟
و خب جوابش اینه که کل هرچیزی که gdb میتونه انجام بده روی یه درگاه pythonی قرار داره و از اونجا میتونی عملا هرکاری بکنی و حتی این توقفگاه های ویژه رو هم داشته باشی
و خب جوابش اینه که کل هرچیزی که gdb میتونه انجام بده روی یه درگاه pythonی قرار داره و از اونجا میتونی عملا هرکاری بکنی و حتی این توقفگاه های ویژه رو هم داشته باشی
نمیدانم
حالا سوالی که شاید داشته باشید اینه که چطوری میشه اینکارو کرد؟ و خب جوابش اینه که کل هرچیزی که gdb میتونه انجام بده روی یه درگاه pythonی قرار داره و از اونجا میتونی عملا هرکاری بکنی و حتی این توقفگاه های ویژه رو هم داشته باشی
ولی مشکلی که وجود داشت این بود که zed خیلی خوشحال نبود که من یه توقفگاه شخصی سازی شده درست کنم و استفاده کنم
همچنان روی کد حرکت میکرد و متوقف میشد و اینا ولی مشکلی که بود این بود که کلا console و ترمینال وجود خارجی نداشت
و خب اینطور شد که چیزای مختلفی رو نگاه کردم
همچنان روی کد حرکت میکرد و متوقف میشد و اینا ولی مشکلی که بود این بود که کلا console و ترمینال وجود خارجی نداشت
و خب اینطور شد که چیزای مختلفی رو نگاه کردم
نمیدانم
ولی مشکلی که وجود داشت این بود که zed خیلی خوشحال نبود که من یه توقفگاه شخصی سازی شده درست کنم و استفاده کنم همچنان روی کد حرکت میکرد و متوقف میشد و اینا ولی مشکلی که بود این بود که کلا console و ترمینال وجود خارجی نداشت و خب اینطور شد که چیزای مختلفی رو نگاه…
در نهایت gf2 و gdb-frontend گزینه های مطلوبی بودن که همه کاری که میخواستم رو میکردن ولی gf2 با c گسترش پیدا میکنه و سبکتره ولی gdb-frontend با python و js گسترش پیدا میکنه و روی یه chromium سوار میشه (الکترونی نیست) و سنگین تره
پس درنهایت ماجرا gf2 رو انتخاب کردم برای این منظور
یه نکته دیگه هم که وجود داره اینه که ide ها برای اینکه دارن خیلی کار های مختلفی رو پوشش میدن مجبود میشن توی تخصیص کلید های میانبر یه سری مصالحه انجام بدن و خب معمولا کلیدای میانبر دیباگرا جاهای ناجوریه
ولی وقتی یه دیباگر اختصاصی داری دیگه این مشکل رو نداری + میتونی ابزارای خوبی هم برای نمایش داده برای خودت بسازی
پس درنهایت ماجرا gf2 رو انتخاب کردم برای این منظور
یه نکته دیگه هم که وجود داره اینه که ide ها برای اینکه دارن خیلی کار های مختلفی رو پوشش میدن مجبود میشن توی تخصیص کلید های میانبر یه سری مصالحه انجام بدن و خب معمولا کلیدای میانبر دیباگرا جاهای ناجوریه
ولی وقتی یه دیباگر اختصاصی داری دیگه این مشکل رو نداری + میتونی ابزارای خوبی هم برای نمایش داده برای خودت بسازی
نمیدانم
در نهایت gf2 و gdb-frontend گزینه های مطلوبی بودن که همه کاری که میخواستم رو میکردن ولی gf2 با c گسترش پیدا میکنه و سبکتره ولی gdb-frontend با python و js گسترش پیدا میکنه و روی یه chromium سوار میشه (الکترونی نیست) و سنگین تره پس درنهایت ماجرا gf2 رو انتخاب…
البته یه چیز دیگه هم بین gf2 و gdb-frontend نظر من رو قاطع کرد
و اونهم پشتیبانی از rr بود
و اونهم پشتیبانی از rr بود
نمیدانم
البته یه چیز دیگه هم بین gf2 و gdb-frontend نظر من رو قاطع کرد و اونهم پشتیبانی از rr بود
اگه نمیدونید rr چیه
خلاصه توضیح کاری که میکنه اینه که :
میاد برنامه رو ضبط میکنه و بعدا بهتون امکان میده که برنامه رو به هر شکلی بازپخش کنید
مثلا میتونید وقتی به یه توقفگاه خوردید برید دستور قبلی یا حتی برید به توقفگاه قبلی و یه جورایی قابلیت سفر در زمان بهتون میده
خلاصه توضیح کاری که میکنه اینه که :
میاد برنامه رو ضبط میکنه و بعدا بهتون امکان میده که برنامه رو به هر شکلی بازپخش کنید
مثلا میتونید وقتی به یه توقفگاه خوردید برید دستور قبلی یا حتی برید به توقفگاه قبلی و یه جورایی قابلیت سفر در زمان بهتون میده
یعنی آقای godbolt اومده هر روز مارو متحیر تر از روز قبل بکنه
به نظر میاد که
compiler explorer
خط لوله بهینه سازی هایی که llvm انجام میده رو میتونه بهتون نشون بده 🤯
https://www.youtube.com/watch?v=Hu0vu1tpZnc&pp=ygUEQU9DTw%3D%3D
به نظر میاد که
compiler explorer
خط لوله بهینه سازی هایی که llvm انجام میده رو میتونه بهتون نشون بده 🤯
https://www.youtube.com/watch?v=Hu0vu1tpZnc&pp=ygUEQU9DTw%3D%3D
نمیدانم
اشتباه شد ویرگول منظورم بود
بعد این ویراستی چقد حریصانه قیمت گذاری شده اصن خیلی شاهکاره