PDA

View Full Version : سوال: Trace نشدن یک دیتاماژول



یوسف زالی
یک شنبه 17 آذر 1392, 21:53 عصر
سلام.
چه دلیلی وجود داره که یکی از یونیت های برنامه تریس نمی شه؟
آیا چیزی براش ست شده؟

hadisalahi2
دوشنبه 18 آذر 1392, 10:38 صبح
اتفاقا منم ، بعضی مواقع با این مشکل مواجه میشم و ممکنه نتونم قسمی از کدم رو تریس کنم.

معمولا در این موارد من ، یا کدهای فایلم رو به یک یونیت جدید انتقال میدم و یا اینکه یک پروژه جدید می سازم و فرم ها رو یکی یکی به پروژه اضافه میکنم تا ببینم مشکل توی کدوم یونیت یا فرم هستش

روش ، خیلی فنی نیست ، ولی در اکثر موارد برای من که جواب میده.

امیدوارم واسه شما هم جواب بده :لبخند:

یوسف زالی
دوشنبه 18 آذر 1392, 11:31 صبح
آره تست کردم جواب می ده ولی خب اصل مشکل دلیلش چیه؟ من قطعه کدم خیلی خیلی بزرگه نمی تونم به سادگی منتقلش کنم.
مربوط به یک کلاس می شه.

hadisalahi2
دوشنبه 18 آذر 1392, 11:44 صبح
آره تست کردم جواب می ده ولی خب اصل مشکل دلیلش چیه؟

منم ، خیلی دنبال بودم بفهمم دلیلش چیه ، اما افسوس که همت ما برای کشف این معذل بزرگ به جایی نرسید :افسرده:

خوب پیشنهاد میکنم ، کد ها رو اگه امکانش هست ، تیکه تیکه اضافه کن به یونیت جدیدت ، تا بفهمی مشکل از کدوم قسمت کده

البته میدونم کار خسته کننده ای هستش
اما فک کنم ، جواب بده

یعنی من که سعی کردم با این مشکل اینطوری کنار بیام :لبخند:

یوسف زالی
دوشنبه 18 آذر 1392, 12:10 عصر
اصلا مشکل از کد نیست برار جان. اون نقطه نقطه هایی که موقع بیلد کنار خطوطم میاد اصلا موجود نیست. اصلا یک ShowMessage ساده هم باشه باز نمیاد. خود یونیت در لیست کدهای قابل تریس نیست.
تقریبا مثل یونیت های دلفی.

hadisalahi2
دوشنبه 18 آذر 1392, 13:05 عصر
پس با توجه به صحبت های شما و تجربه های کسب شده در این زمینه به این نتیجه میرسیم که دلفی در بعضی از موارد در تریس کردن کدها قاط میزند :متعجب:

که به روشهای زیر قابل ترمیم می باشد:
1- بستن دلفی و باز کردن مجدد آن
2- انتقال کدها از یک یونیت به یونیت جدید
3- ایجاد یک پروژه جدید و انتقال فرمها به پروژه جدید. :متفکر:

این روشهایی بوده که من از اونها استفاده میکنم و در 99.9% جواب میدهد :لبخند:

یوسف زالی
دوشنبه 18 آذر 1392, 13:15 عصر
دلفی در تریس کردن "یونیت" من قاط زده هادی جان.
همه یونیت ها تریس می شن. از این یونیت هم استفاده شده و در بیلد حضور داره ولی تریس نمی شه.

Mask
دوشنبه 18 آذر 1392, 14:45 عصر
اینجاست که بهت میگم از این دلفی 7 دل بکن.:چشمک:
من الان تو xe تست کردم و تریس شد.
http://ge.tt/api/1/files/7Of0Qh81/0/blob/x675

یوسف زالی
دوشنبه 18 آذر 1392, 15:00 عصر
حمزه جان تریس می شه فقط یک یونیت خاص نمی شه. باگ نیست. ستینگی چیزی داره.

Mask
دوشنبه 18 آذر 1392, 15:08 عصر
حمزه جان تریس می شه فقط یک یونیت خاص نمی شه. باگ نیست. ستینگی چیزی داره.

یعنی چی؟ تو نسخه های بالاتر از 7 چک کردی؟

BORHAN TEC
دوشنبه 18 آذر 1392, 15:45 عصر
سلام
من متوجه نشدم. تریس نمیشه یعنی چی؟ یعنی به جای نمایش کدها دیباگ ریز دستورات CPU رو نشون میده؟ شاید فایل dcu این یونیت در پوشه یونیتهای vcl قرار داده شده و حالت use debug dcu هم از درون محیط دلفی غیر فعال هستش؟!!! :متفکر:

یوسف زالی
دوشنبه 18 آذر 1392, 16:36 عصر
ببینید، فرض کنیم چند تا یونیت داریم که خودمون نوشتیم و جزو DCU دلفی نیست. پس لزومی به زدن تیک نیست.
حالا وقتی بیلد می کنیم در تمام یونیت ها اون نقطه ها در سورس هست و طبعا تریس می شه جز یک یونیت. این یونیت بوسیله کامپایلر بهینه سازی نشده و در خیلی جاها کال شده پس حتما بیلد می شه.
مشکل اینه که فقط یکی از یونیت های من قابل تریس نیست. سورسش رو دارم. DCU رو از اول می سازم. بیلد می کنم ولی باز هنگام تریس با F7 به تعریف تابعی که در اینجاست نمی ره. اون نقطه ها رو هم نداره.
لازمه عکس بذارم آیا؟

بهروز عباسی
دوشنبه 18 آذر 1392, 22:18 عصر
درود
من یادمه چنین مشکلی رو وقتی برنامه رو در حالت Release کامپایل می کردم داشتم و وقتی در حالت Debug کامپایل می کردم مشکل حل می شد ولی یادم نیست چه نسخه ای بود و کجا.... .