Reza Alizadeh Majd
Reza Alizadeh Majd
خواندن ۱ دقیقه·۵ سال پیش

اجرای برنامه با GDB و ذخیر لاگ در فایل

یکی از ابزاری که در نبود IDE مخصوصا در محیط ریموت میتونه کمکمون کنه تا دلیل کرش کردن برنامه رو کشف کنیم استفاده مستقیم از خود GDB هستش.

برای مثال برنامه زیر رو که موقع اجرا خطا میده میخوایم با GDB دیباگ کنیم:

https://gist.github.com/ramajd/ff40d13b9b21dd0a47e3ff7a41a43e49

وقتی به صورت عادی برنامه رو اجرا کنیم با خطای زیر روبرو میشیم:‌

$ ./hello Floating point exception

اجرای برنامه بوسیله GDB

برای اینکه برنامه رو با gdb اجرا کنیم کافیه تا اون رو به عنوان ورودی به GDB بفرستیم و بعد با دستور `run` برنامه رو اجرا کنیم:

$ gdb ./hello (gdb) run
اجرای برنامه با GDB
اجرای برنامه با GDB

و موقع بروز خطا با استفاده از back trace به بررسی مشکل بپردازیم:

(gdb) bt

همونطور که میبینید GDB اطلاعاتی راجع متدی که خطا در اون پیش اومده در اختیارمون قرار میده.


ذخیره لاگ در فایل

برای این منظور باید قبل از اجرای برنامه با دستور run تنظیمات لاگ مربوط به GDB رو بصورت زیر انجام بدیم:

(gdb) set logging on (gdb) set logging file /path/to/log/file

همچنین برای مشاهده تنظیمات فعلی لاگ GDB از دستور زیر میتونیم استفاده کنیم:

(gdb) show logging


cppgdbdebugدیباگبرنامه نویسی
توسعه دهنده نرم افزار، علاقه مند به یادگیری
شاید از این پست‌ها خوشتان بیاید