نمیدانم – Telegram
پدربزرگای RISCV
1🔥1
رنگین کمان از طبقه هفتم CE
🔥35
https://github.com/rohanrhu/gdb-frontend
پوسته جذاب و کارامدیه برای gdb
اگه نتونم zeditor رو برای مسخره بازی هایی که میخوام بکنم با دیباگر ها آماده بکنم از همین استفاده میکنم
نمیدانم
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 هم هستشون و نیاز نیست و این حرفا ولی خب ۲ تا…
چیزی که میخوام دیباگ کنم یه هلوورد ساده نیست که بتونیم با next و step دیباگش کنیم
تخمینی که دارم اینه که حدود ۵۰ میلیون دستور داره اجرا میشه و میخوام تحلیل کنم که این سامانه چرا داره به قهقرا میره و اخرش میترکه
در این وضعیت حتی اگه breakpoint هم بذاری و در هر مرحله بپری به بریکپوینت بعدی هم پاسخگو نیست و یا اینطوریه که کلا یه بار به اون میخوری یا ۱۰۰۰۰ بار به توقفگاه میخوری و خب متوجه نمیشی داری چه اتفاقی میوفته یا اینکه بینهایت طول میکشه و خسته میشی و باز هم به هدفت نمیرسی
نمیدانم
اینجاست که یه ایده به سرم زد که یه سری توقفگاه داشته باشیم که اینا یه سری پرچم داشته باشن که با روشن خاموش شدن این پرچم ها بقیه توقفگاه هارو فعال و غیر فعال کنن
حالا سوالی که شاید داشته باشید اینه که چطوری میشه اینکارو کرد؟
و خب جوابش اینه که کل هرچیزی که gdb میتونه انجام بده روی یه درگاه pythonی قرار داره و از اونجا میتونی عملا هرکاری بکنی و حتی این توقفگاه های ویژه رو هم داشته باشی
نمیدانم
حالا سوالی که شاید داشته باشید اینه که چطوری میشه اینکارو کرد؟ و خب جوابش اینه که کل هرچیزی که gdb میتونه انجام بده روی یه درگاه pythonی قرار داره و از اونجا میتونی عملا هرکاری بکنی و حتی این توقفگاه های ویژه رو هم داشته باشی
ولی مشکلی که وجود داشت این بود که zed خیلی خوشحال نبود که من یه توقفگاه شخصی سازی شده درست کنم و استفاده کنم
همچنان روی کد حرکت میکرد و متوقف میشد و اینا ولی مشکلی که بود این بود که کلا console و ترمینال وجود خارجی نداشت
و خب اینطور شد که چیزای مختلفی رو نگاه کردم
نمیدانم
ولی مشکلی که وجود داشت این بود که zed خیلی خوشحال نبود که من یه توقفگاه شخصی سازی شده درست کنم و استفاده کنم همچنان روی کد حرکت میکرد و متوقف میشد و اینا ولی مشکلی که بود این بود که کلا console و ترمینال وجود خارجی نداشت و خب اینطور شد که چیزای مختلفی رو نگاه…
در نهایت gf2 و gdb-frontend گزینه های مطلوبی بودن که همه کاری که میخواستم رو میکردن ولی gf2 با c گسترش پیدا میکنه و سبکتره ولی gdb-frontend با python و js گسترش پیدا میکنه و روی یه chromium سوار میشه (الکترونی نیست) و سنگین تره
پس درنهایت ماجرا gf2 رو انتخاب کردم برای این منظور

یه نکته دیگه هم که وجود داره اینه که ide ها برای اینکه دارن خیلی کار های مختلفی رو پوشش میدن مجبود میشن توی تخصیص کلید های میانبر یه سری مصالحه انجام بدن و خب معمولا کلیدای میانبر دیباگرا جاهای ناجوریه
ولی وقتی یه دیباگر اختصاصی داری دیگه این مشکل رو نداری + میتونی ابزارای خوبی هم برای نمایش داده برای خودت بسازی
نمیدانم
البته یه چیز دیگه هم بین gf2 و gdb-frontend نظر من رو قاطع کرد و اونهم پشتیبانی از rr بود
اگه نمیدونید rr چیه
خلاصه توضیح کاری که میکنه اینه که :
میاد برنامه رو ضبط میکنه و بعدا بهتون امکان میده که برنامه رو به هر شکلی بازپخش کنید
مثلا میتونید وقتی به یه توقفگاه خوردید برید دستور قبلی یا حتی برید به توقفگاه قبلی و یه جورایی قابلیت سفر در زمان بهتون میده
یعنی آقای godbolt اومده هر روز مارو متحیر تر از روز قبل بکنه
به نظر میاد که
compiler explorer
خط لوله بهینه سازی هایی که llvm انجام میده رو میتونه بهتون نشون بده 🤯

https://www.youtube.com/watch?v=Hu0vu1tpZnc&pp=ygUEQU9DTw%3D%3D
اشتباه شد
ویرگول منظورم بود
👍3
نمیدانم
اشتباه شد ویرگول منظورم بود
لعنت به هرچی توییتره و امثالش
👍5
نمیدانم
اشتباه شد ویرگول منظورم بود
بعد این ویراستی چقد حریصانه قیمت گذاری شده اصن خیلی شاهکاره
خییییلی جذاب
👍1
نمیدانم
خییییلی جذاب
واقعا گزینه های بهینه سازی gcc خیلی زیادن
شاید جذاب باشه بعدا هم یه نگاهی بهشون بندازم