Farzad Sarseifi

آموزش دیباگ کردن کد در اکلیپس

1 ارسال در این موضوع قرار دارد

[align=center]278x278http://www.jamesdevondevelopment.com/wp-content/uploads/2012/07/no-bugs.png[/img]

[/align]

تاریخچه کلمه دیباگ:

واژه باگ و دیباگ کردن صفتی است که دریاسالار خانم گریس هوپر در سال 1940 بکار برد . (بد نیست بدانیم که ایشان در حیطه خود یک پیشگام بود . وی افسر نیروی دریایی ایالات متحده و متخصص کامپیوتر ؛ اولین برنامه های خاص کامپیوترهاروارد مارک یک را ایجاد کرد و اولین کامپایلر برای برنامه نویسی این کامپیوتر را ، توسعه داد.

به پاس خدمات گسترده این بانو ؛ کشتی جنگی USS Hopper DDG-70 بنام ایشان نامگذاری شد .)

در زمانی که وی مشغول کار برروی کامپیوتر مارک 2 در دانشگاه هاروارد بود همکارانش یک حشره را که بین یک رله قرار گرفته بود یافتند که مانع انجام صحیح عملیات میشد . بموجب این عملکرد ، اعلام شد که آنها سیستم را دیباگ کردند که سر منشاء وجودی این واژه شد .

Debugging در سالهای بعد بعنوان متدی برای پیشبرد عملیات یافتن و کاهش دادن شمار باگ ها یا نقص ها در برنامه های کامپیوتری و یا در قطعات الکترونیکی سخت افزاری مورد استفاده قرار گرفت.

عملیات دیباگ کردن زمانی بشکلی حاد نمایان میشود که گونه های مختلفی از زیرسیستم ها در کنار هم قرار گرفته و جفت شوند ؛ در این وضعیت تغییر در یکی باعث بوجود آمدن باگ هایی در دیگر سیستم ها میشود .

[align=center]c247b44e-07b3-4ca9-9724-d913fb9dc3c2[/align]

پروسه دیباگینگ:

دنبال کردن جملاتی در برنامه که اشاره بر روند اجرایی آن دارد جهت اطمینان از عملکرد صحیح کل برنامه .

اولین قدم در دیباگینگ غالبا تلاش برای بازسازی خطا است که معمولا کار ساده ای نیست . بطور مثال در مورد پردازش موازی ویا خطا های نرم افزاری غیر متعارف . پس از باز سازی خطا ؛ ورودی برنامه باید ساده بشود تا باعث ساده سازی عملیات دیباگ گردد. برای مثال یک باگ کامپایلری باعث کرش (Crash) شدن کامپیوتر میشود که معمولا این اتفاق در یک برنامه بسیار بزرگ اتفاق می افتد. اگرچه بعد از ساده سازی مشاهده میشود که تنها چند خط مسول این عملکرد غلط هستند.

این نوع ساده سازی در واژه بعنوان تقسیم و غلبه بیان میشود.

برنامه نویس بخشهایی از حالتهای تست را که برای دیباگ در برنامه قرار داده شده برمیدارد تا متوجه خطای دقیق در برنامه بشود .پس از این قسمت برنامه نویس میتواند از Debugger برای امتحان حالتهای برنامه استفاده کند . تا متوجه مقادیر در Call Stack بشود.

ابزار های دیباگ :

دیباگر Debugger یک ابزار نرم افزاری است که به برنامه نویس اجازه بررسی لحظه به لحظه اجرای برنامه را میدهد و برنامه نویس را قادر میسازد تا توقف ؛ شروع مجدد ؛ نقطه توقف در خطوط برنامه و تغییر مقادیر را در حافظه مشاهده کند .

واژه دیباگر میتواند بدین صورت در نظر گرفته شود که شخصی که در حال انجام عملیات دیباگ است .

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

مراحل زیر را اگر بدین صورت انجام  دهید براحتی کدتان را دیباگ خواهید کرد :

1-ابتدا کنار کدها سمت چپ کلیک راست کنید تا یک Breakpoint ایجاد شود .

[align=center]do.php?img=44[/align]

2-سپس در مرحله بعد.روی پروژه خود راست کلیک و گزینه Debug As ->Android Application را انتخاب کنید.

3-در صورتی که به کد مربوطه که Breakpoint قرار داده بودیم رسیدیم،وارد تب Debug در اکلیپس میشویم .

[align=center]do.php?img=45[/align]

آنچنان که در تصویر بالا ملاحضه می فرمایید.کد مربوطه با رنگ سبز انتخاب شده است،حالا برای اینکه خط به خط جلو برویم باید کلید F6 را فشار دهیم. اگر خطایی داشت از کد بیرون خواهد رفت،پس متوجه خواهید شد مشکل کارتون کجاس.

برای اینکه بتوانید یک Breakpoint جلو بروید باید F8 را فشار دهید.

یکی دیگر از امکانات خوب دیباگ در اکلیپس بخش Variable میباشد که اگر به تصویر بالا توجه نمایید تب variable را مشاهده خواهید نمود کار این ابزار این میباشد که در هر لحظه محتوای همه متغیر ها،کلاس و ... را به ما نمایش میدهد.

بهتره که برای هندل کردن خطای کدهاتون از دستور try بدین صورت استفاده نمایید :

کد:

try {                //دستوراتی که قرار است اجرا شود            } catch (Exception e) {                // TODO: handle exception            }
 

برای آشنایی بیشتر میتوانید به منابع زیر رجوع کنید :

http://www.vogella.com/articles/EclipseDebugging/article.html
 
http://www.ibm.com/developerworks/library/os-ecbug/
 

منبع تاریخچه دیباگ : ویکی پدیا

 

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط Aliartor
      سلام 
      من میخوام یک قسمت برای سکه برای کاربران درست کنم که با انجام کاری یا زدن روی دکمه ای اون عدد زیاد بشه این تیکه کدشو کسی داره؟
       
      و باید برای باز کردن قفل یک قسمت یک مقدار ثابتی سکه داشته باشه مثلا ۵۰تا سکه باید داشته باشه تا به اون قسمت دست رسی داشته باشه من باید آموزش این نوع قسمتارو کجا ببینم یا اگه میشه همینجا کامل راهنمایی کنید ممنون میشم.
    • توسط شاهرخ جهان زاده
      آیا تا به حال شده که بعد از ارائه اپلیکشن پیغامهایی از طرف کاربران دریافت کنید که ناشی از بسته شدن اپ در حین کار باشه؟
      در اینگونه مواقع علاوه بر زمانبر بودن پیدا کردن خطا، شاهد ریزش شدید کاربران اپ خواهید بود. پس بهتر است قبل از ارائه اپ در بازار یا Google Play تمهیداتی را برای اطلاع از پیغامهای احتمالی در نظر بگیرید.
      یکی از ابزارهای بسیار مفید استفاده کردن از کتبخانه هایی هست مه برای انجام این کار در نظر گرفته شده است، به عنوان مثال کتابخانه ACRA این کار را با ارسال ایمیل برای شما به راحتی انجام میدهد.
      استفاده کردن از این کتابخانه بسیار راحت هست.
      در قدم اول باید کتابخانه ACRA را به عنوان dependency به build.gradle اضافه کنید:
      compile 'ch.acra:acra:4.9.2' در قدم بعدی کلاس Application را بسازید و متدهای مربوطه برای ACRA را در آن پیاده سازی کنید:
      @ReportsCrashes( formUri = "", mailTo = "yourmail@yourdomain.com", customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.BRAND, ReportField.CUSTOM_DATA, ReportField.INITIAL_CONFIGURATION, ReportField.CRASH_CONFIGURATION, ReportField.USER_CRASH_DATE, ReportField.STACK_TRACE, ReportField.LOGCAT}, resToastText = R.string.crash_toast_text, mode = ReportingInteractionMode.TOAST) public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ACRA.init(this); } } در بخش ReportField همانطور که میبینید، اطلاعاتی که قرار است به ایمیلتان ارسال گردد را وارد میکنیم.
      در قدم آخر فایل Manifest را باز کرده و دسترسی های مربوطه و همچنین کلاس Application را در تگ application وارد کنید:
      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.acrademo"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <application android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> برای تست عملکرد کدها، یک دکمه بسازید و سپس کدهایی را برای آن وارد کنید که باعث کرش شدن اپ گردد...
      public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onCrash(View view){ throw new RuntimeException("App Crashed"); } } منبع: www.asifmoinulislam.com
    • توسط aliarha
      با سلام خدمت همه کاربران و مدیران انجمن p30droid
      این اولین پست منه و خیلی علاقه مند به یادگیری برنامه نویسی اندروید دارم ، (رایگان / پولی)
      درخواستی که از عزیزان دارم اگه لطف کنید پاسخ کاملی بدین ممنون میشم
      من تقریبا طراحی سایت بلدم و درصد یادگیریم بد نیست ، میخواستم بدون بهترین برنامه برای استارت کارم اندروید استودیو هست ؟
      دنبال آموزشی کامل هستم (رایگان یا پولی فرقی نداره) فقط مدیران یا کاربران تایید کنن ، آموزشی همراه با ساخت یک پروژه از 0 تا 100
      تشکر
    • توسط Farzad Sarseifi
      دانلود کتاب Android Development with Kotlin

      امروزه روند توسعه نرم افزار اندروید بسیار گسترده شده است. در طول چند سال اخیر، ما شاهد چگونگی پیشرفت ابزارهای مختلفی هستیم تا زندگی ما را ساده‌تر کند. با این حال، یکی از عناصر اصلی فرآیند توسعه نرم افزار اندروید یعنی جاوا در طول این مدت تغییر زیادی نکرده است. پلتفرم اندروید خود را با نسخه‌های جدیدتر جاوا سازگار می‌کند، ولی برای استفاده از آن ها، ما باید مدت زمان بسیار زیادی را صبر کنیم تا دستگاه‌های جدید اندرویدی به فروش مناسب بازار دست یابند. همچنین، توسعه برنامه‌ها با جاوا چالش‌های خود را به همراه دارد، چرا که جاوا زبانی قدیمی با بسیاری از مشکلات طراحی است که به واسطه محدودیت‌های سازگاری با نسخه‌های قدیمی، نمی‌توانند به سادگی حل شوند.
      از سویی دیگر Kotlin، زبانی جدید ولی پایدار است که بر روی همه‌ی دستگاه‌های اندرویدی اجرا می‌شود و بسیاری از مشکلاتی که جاوا قادر به حل آن نبود را حل می‌کند. Kotlin زبان فوق العاده ای است که زندگی توسعه دهنده را بسیار راحت‌تر می‌کند و اجازه می‌دهد تا کد امن تر، بیان گر‌تر و خلاصه‌تر ایجاد شود.
      کتاب توسعه اندروید با Kotlin، راهنمایی عملی است که به شما کمک می‌کند تا با استفاده از زبان Kotlin، روند توسعه اندروید را بهبود داده و به آن سرعت بخشید. ما میان برها و پیشرفت‌های زیاد نسبت به جاوا و راه‌های جدیدی حل مسائل رایج را ارائه دادیم. در پایان این کتاب، شما با ویژگی‌ها و ابزار‌های Kotlin آشنا خواهید شد و شما قادر خواهید بود که برنامه ای اندرویدی را با کاملا با Kotlin توسعه دهید.
       
      What You Will Learn
      Run a Kotlin application and understand the integration with Android Studio
      Incorporate Kotlin into new/existing Android Java based project
      Learn about Kotlin type system to deal with null safety and immutability
      Define various types of classes and deal with properties
      Define collections and transform them in functional way
      Define extensions, new behaviours to existing libraries and Android framework classes
      Use generic type variance modifiers to define subtyping relationship between generic types
      Build a sample application
       Table of Contents
      1: BEGINNING YOUR KOTLIN ADVENTURE
      2: LAYING A FOUNDATION
      3: PLAYING WITH FUNCTIONS
      4: CLASSES AND OBJECTS
      5: FUNCTIONS AS FIRST-CLASS CITIZENS
      6: GENERICS ARE YOUR FRIENDS
      7: EXTENSION FUNCTIONS AND PROPERTIES
      8: DELEGATES
      9: MAKING YOUR MARVEL GALLERY APPLICATION
       
      دانلود
      Packt.Android.Development.with.Kotlin.epub
       
    • توسط Farzad Sarseifi

      Kotlin چیست؟
      Kotlin (کاتلین) یک زبان برنامه‌نویسی‌ست که با استفاده از آن میتوان برنامه نویسی اندروید را توسعه داد. نسخه های اخیر اندروید استودیو به طور رسمی از کاتلین پشتیبانی می‌کنن، مسئله‌ای که در Google IO 2017 اعلام شد.
      kotlin تبدیل به bytecode جاوا میشود پس بنابراین به خوبی java میتونه روی اندروید اجرا بشه و از این نظر تفاوتی وجود نخواهد داشت. و اینکه میشه توی یک پروژه اندروید همزمان از kotlin و java استفاده کرد، بنابراین حتی اگر خیلی کم با کاتلین آشنا هستید باز هم میتونید بخشی از پروژه‌هاتون رو با کاتلین انجام بدید.
      چرا Kotlin؟
      دلیل اول اینکه با کاتلین میتونیم کدهایی تمیزتر و خواناتر بنویسیم. میدونیم که زبان جاوا boiler code زیاد داره. boiler code به کدهایی میگیم که جز syntax زبان هستن ولی همیشه بدون دلیل تکرار میشن و میشد حذفشون کرد.
       
       

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل