نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل با watch کردن متغیر های محلی

  1. #1

    مشکل با watch کردن متغیر های محلی

    سلام به همه.
    من امروز تو محیط دلفی برای مشاهده مقدار یکی از متغیر هام براش یه watch اضافه (add) کردم. اما موقع trace کردن برنامه دیدم به جای مقدار متغیر نوشته :
    Variable "X" inaccessible here due to optimization

    چرا؟ منظور از اپتیمایز کردن چیست؟ چطور متغیر inaccessible هست، اما برنامه میتونه باهاش کار کنه؟

    سپاس.

  2. #2

    نقل قول: مشکل با watch کردن متغیر های محلی

    برای دیباگ، Compiler Optimization را غیرفعال کنید. وقتی Optmization فعال هست، هر جا که به یک متغیر در کد نیاز نباشه، از اون متغیر در کد استفاده نمیشه، و در زمان دیباگ هم شما بهش دسترسی نخواهید داشت.

    منظور از اپتیمایز کردن چیست؟
    یعنی بهینه سازی کد ماشین تولید شده توسط کامپایلر، یعنی کامپایلر سعی میکنه با آنالیز کد شما، سریعترین و بهترین کد ماشین را تولید کنه، و هر بخش از کد که در برنامه نقشی نداشته باشه را دور میریزه؛ مثلا اگر شما متغیری در یک تابع تعریف کنید، و در طول اجرای تابع هیچ کار مفیدی با آن انجام ندید، Compiler Optimization باعث میشه که اون متغیر بی مصرف اصلا کامپایل نشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •