۱ مجتبی
breakpoints , debug
جامعه جاوا (اندروید) ایجاد شده در ۰۳ مهر ۱۴۰۱

سلام خسته نباشید

من واقعا اصلا نفهمیدم مفهوم این دو جلسه چیه و خیلی برام سخت بود و مفاهیم و کلمات به کار برده شده این جلسه رو متوجه نشدم :(

سلام،

بعضی وقتها برنامه ای که مینویسید دچار ایراد(باگ) میشه و شما نمیدونید مشکل چیه و دقیقا کجا یا چه اتفاقی در کد میوفته، اینجا نیاز هست شما برنامه تون رو خط به خط اجرا کنید و ببینید دقیقا هر خطی که ازش رد میشید چه اتفاقی میوفته تا نهایتا متوجه بشید ایراد کجاست و کدوم خط مشکل ایجاد کرده. با این کار ما برنامه رو خطایابی کردیم یا اصطلاحاً Debug.

بصورت کلی وقتی کدنویسی میکنیم خودمون هم چشمی خط به خط کدی که مینویسیمو نگاه میکنیم و بررسی میکنیم که درست نوشتیم یا نه حالا برای اینکه سرعتمون بره بالا و دقیق‌تر بتونیم برنامه رو trace کنیم خط به خط دنبال کنیم مخصوصا در برنامه‌های بزرگتر با خطوط کدبیشتر که بصورت چشمی سخت میشه، کامپایلر ابزاری رو برامون فراهم کرده که اینکارو بکمک کامپایلر انجام بدیم و همونجا نتیجه اجرای هر خط از کد رو ببینیم.

در مورد breakpoint فرض کنید 100 خط کد دارید و تا خط 90 رو میدونید که مشکلی نیست و مشکل بین خطوط 90 تا 100 هست اینجا بجای اینکه برنامه رو در حالت دیباگ از خط 1 کد قرار بدید، چون زمان شما رو هم میگیره و باید یکی یکی خط هارو برید جلو تا به خط 90 برسید میاید از نقطه هایی به اسم breakpoint استفاده میکنید این نقطه رو روی خط 90 میذارید بنابراین وقتی برنامه رو در حالت دیباگ اجرا میکنید تا خط 90 رو خود برنامه کامپایل میکنه و روی خط 90 می‌ایسته تا ازون خط به بعد کدهارو خط به خط بررسی کنید. نقاط مختلفی میتونید بذارید.


یک راه دیگه برای دیباگ کردن استفاده از LogCat هست بجای اینکه برنامه رو در حالت دیباگ اجرا کنید، بصورت معمولی اجرا میکنید اما در قسمت هایی از کد از Logcat کمک میگیرید تا یک سری اطلاعات رو براتون چاپ کنه این اطلاعات میتونه یک متن باشه(هر متنی بصورت دلخواه شما) یا اطلاعات یک متغیر و ... قراره به شما اطلاعاتی بده تا به یک نتیجه برسید. برنامه رو که اجرا میکنید کامپایلر خودش یک سری اتفاقات و اطلاعات رو ثبت میکنه و به شما نشون میده که اسمشون Log هست حالا بین اینها میتونه خطا باشه یا هر چیز دیگه، در بین این لاگ‌ها شما هم میتونید بصورت دستی در برنامتون لاگ ایجاد کنید با یک اسم خاص که با توجه به اون اسم متوجه بشید این لاگ‌ها و اطلاعات مال خودتونه و شما ثبت کردید.

بهترین پاسخ
محسن موحد ۰۴ مهر ۱۴۰۱، ۰۲:۴۵