PDA

View Full Version : سوال: دیباگر -> پیدا کردن محل دقیق وقوع خطای AV



BORHAN TEC
سه شنبه 04 مهر 1391, 10:13 صبح
سلام :قلب:
در بسیاری از موارد خطای AV (دسترسی غیر مجاز) رخ می دهد. در این موارد با خطاهایی مشابه زیر مواجه می شویم که محل وقوع خطارا نشان می دهد:

---------------------------
Debugger Exception Notification
---------------------------
Project HyLoader_And.exe raised exception class EAccessViolation with message 'Access violation at address 010B617F in module 'tls.dll'. Read of address 000001B0'.
---------------------------
Break Continue Help
---------------------------


حال مشکل اینجا است که مثلاً در اینجا من نمی دانم که آدرس 010B617F مربوط به کدام خط از برنامه ام می شود. آیا می توانید مرا راهنمایی کنید؟

با تشکر....

Felony
سه شنبه 04 مهر 1391, 10:53 صبح
در این مقاله (http://barnamenevis.org/showthread.php?79603-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%B1%D9%87%D9%86%D9%85%D9%88%D8%AF%D9%87%D8%A7%D B%8C-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1&p=399383#post399383) این مورد کاملا توضیح داده شده ولی خوب طی کردن همچین روندی برای هر خطا خیلی ملال آور هست ، از کامپوننت هایی مثل EurekaLog یا MadExcept استفاده کنید که اطلاعات بسیار کاملی در مورد خطا ، شماره خط برنامه و ... در اختیارتون قرار میدن .

BORHAN TEC
سه شنبه 04 مهر 1391, 11:05 صبح
از کامپوننت هایی مثل EurekaLog یا MadExcept استفاده کنید که اطلاعات بسیار کاملی در مورد خطا ، شماره خط برنامه و ... در اختیارتون قرار میدن .
اتفاقاً از EurekaLog استفاده می کنم و تنظیمات مربوط به Memory Leak و ... را هم تنظیم کرده ام ولی وقتی که پنجره مربوط به این ابزار در موقع وقوع خطا باز میشه به سرعت بسته میشه و همین موضوع باعث میشه که نتونم از سربرگ Call Stack مربوط به اون استفاده کنم و محل وقوع خطا رو شناسایی کنم!

Felony
سه شنبه 04 مهر 1391, 11:55 صبح
از نسخه Trial استفاده نمیکنید ؟ برای من که مشکلی نداره ، اگر خواستید از طریق پیغام خصوصی بهم اطلاع بدید تا نسخه XE2 رو براتون بفرستم ، در ضمن madExcept هم ابزار بسیار مناسبی هست .

BORHAN TEC
سه شنبه 04 مهر 1391, 12:36 عصر
از نسخه Trial استفاده نمیکنید ؟
خیر

برای من که مشکلی نداره ، اگر خواستید از طریق پیغام خصوصی بهم اطلاع بدید تا نسخه XE2 رو براتون بفرستم
دستتون درد نکنه ولی من الان دارم در محیط 2010 کار می کنم و فکر کنم بتونم این مشکل رو حل کنم و خوشبختانه به جاهای نسبتاً خوبی رسیدم و اگه نتونم مشکل رو حل کنم همین تاپیک رو با جزئیات بیشتری ادامه خواهم داد.

در ضمن madExcept هم ابزار بسیار مناسبی هست .
فکر نمی کنم بتونم به راحتی ابزار مورد نظر رو عوض کنم چون پروژه از حدود 100 قسمت مختلف تشکلیل شده و هر قسمت اون هم تقریباً از 2 تا 5 هزار خط کد تشکیل شده و جایگزین کردن madExcep به جای EurekaLog فکر نمی کنم در شرایط فعلی شدنی باشه و اگر هم باشه کار زمانبری هستش!