تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: سؤال 1 آماتور در مورد تفاوت ديباگر و كامپايلر

  1. #1
    کـاربـر بـاسـابـقـه am_merman01's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    یه جایی گوشه دهکده جهانی تو یه کانکشن دایال آپ
    پست ها
    893

    پيش فرض سؤال 1 آماتور در مورد تفاوت ديباگر و كامپايلر

    سلام دوستان من 1 بر نامه نويس تازه كارم و ميخواستم بدونم تفاوت ديباگر با كامپايلر در چيه
    اميد وارم يك نفر من رو از اين ابهام نجات بده.

  2. #2
    پروفشنال __Genius__'s Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    esfahan
    پست ها
    833

    پيش فرض

    سلام دوست خوب ...
    در مورد compiler این همیشه مد نظرتون باشه که بحث جدایی از debugger داره ... ولی کلا کامپایلر برنامه ها و کدهای نوشته شده شما رو در درجه اول به زبان ماشین ترجمه میکنه و اکثر به صورت اتوماتیک لینکی میسازن که فایل Executable شما ساخته بشه ... در صورتی که کاملا با مفسر Interpreter فرق میکنه ...
    Assembly یک مفسر هست ... ولی چیزی مثل Visual C++ یک کامپایلر هست ..
    اما در مورد Debugger همون طور که از اسمش پیداست عمل DeBug رو برای شما انجام میده ...
    یعنی باگهای احتمالی کدهای شما رو رفع میکنه و نقطه های خطرناک برنامه که میتونه به محصول شما ضرر زیادی بزنه رو بررسی کنه .... و گوشزد کنه ... الان اگه دقت کرده باشی Visual C و اکثر کامپایلر ها یه Debugger قوی با Plugin های خیلی قوی دارن که با استفاده از اونا میتونین مشکلات برنامه نویسی رو حل کنید ...
    فرض میکنیم شما در قستی از برنامتون پارامتری رو به عنوان ورودی از کاربر دریافت میکنین و حالا یاتون رفته اون ورودی رو چک کنین که اگر از یه حد خاصی گذشت Handling بشه و به جای دیگه ای توسط Exception های شرطی فرستاده بشه ... فرض کنیم پارامتر رو چک نکردین .. خوب قاعدتا اگر برنامه شما static عمل کنه حفره و باگ از نوع Stack Overflow و دز سطح Stack از memory رخ میده ولی اگه از حالت Dynamic و Run time allocation استفاده کرده باشین باگ از نوع Heap Overflow و در سطح حافظه Heap که بسیار نقطه حساسی در حافظه هست و رخ میده ... حالا تنها با یک چیز قابل از ارائه محصول ( صرفا برای عدم بروز اشکال برای کاربران نرم افزار شما ) میتونه باگهای نرم افزاری شما رو به شما نشون بده و اون Debugger هست ... البته جدای از debugger هایی که خود compiler ها دارن debugger های جدایی داریم ....
    ولی کلا debugger ها از مشخصه ای به نام Ring از هم جدا و سوا میشن ...
    مثلا هر چه شماره Ring پائین تر باشد قاعدتا قدرت debugger بالاتر و در سطح low level کار میکنه ....
    مثلا debugger قدرتمند softice که خیلی معروف هست ring 0 هست و قابلیت debug کردن در سطح Kernel رو داره ... از debugger های دیگه توی platform ویندوز میشه ollydbg رزو گفت که خوب خیلی خوبه ...
    ولی توی platform لینوکس و امثال unix و کلا nix* ها میشه به GDB اشاره کرد که قدرت فوق العاده ای داره ...
    اگه جایی نا مفهوم بود لطفا بگین ...
    خوش باشید ....

  3. #3
    کـاربـر بـاسـابـقـه am_merman01's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    یه جایی گوشه دهکده جهانی تو یه کانکشن دایال آپ
    پست ها
    893

    پيش فرض

    خدا خيرت بده دوست عزيز
    بعد ار مدت طولاني بالاخره روم شد اين سؤال رو بپرسم
    خداييش توضيحت كامل بود
    واقعاً دستت درد نكنه

  4. #4

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •