اگر Mister Download Manager به طور غیرمنتظره بسته شود یا از پاسخگویی متوقف شود، پنجره گزارش خرابی باز میشود. این پنجره آنچه را که اتفاق افتاده نشان میدهد، به شما امکان میدهد کل گزارش را بخوانید و میتواند آن را به توسعهدهندگان در GitHub ارسال کند. هر گزارش به رفع مشکل برای همه کمک میکند.

آنچه میبینید
- Mister Download Manager به طور غیرمنتظره بسته شد: MDM از کار افتاد یا با یک خطای داخلی مواجه شد و بسته شد.
- Mister Download Manager از پاسخگویی متوقف شد: پنجره آن به مدت 8 ثانیه پاسخ نداد. MDM هنوز در حال اجرا است، اما متوقف شده است. پایان و راهاندازی مجدد MDM نسخه متوقف شده را میبندد و یک نسخه جدید را راهاندازی میکند. اگر MDM خودش دوباره پاسخ دهد، پنجره این موضوع را اعلام میکند.
در پنجره:
- هنگام وقوع چه کاری انجام میدادید؟ اختیاری است. چند کلمه، مانند "من افزودن URL را باز کردم"، کمک زیادی میکند.
- گزارش هر آنچه را که ارسال میشود نشان میدهد. اگر دوست دارید، ابتدا آن را بخوانید.
- ارسال در GitHub فرم گزارش خرابی GitHub را در مرورگر شما باز میکند، که از قبل پر شده است، همراه با پوشهای که گزارش را در خود جای داده است. فایل گزارش را به داخل فرم بکشید، آن را بررسی کنید و ارسال کنید. شما به یک حساب GitHub نیاز دارید. هیچ چیز به خودی خود ارسال نمیشود.
- اگر کسی قبلا همان مشکل را گزارش کرده باشد، پنجره این موضوع را اعلام میکند (قبلا به عنوان مشکل #… گزارش شده است). باز کردن مشکل گزارششده آن را باز میکند و گزارش شما را در کلیپبورد قرار میدهد، بنابراین میتوانید آن را به عنوان یک نظر اضافه کنید.
دکمههای دیگر گزارش را کپی میکنند، پوشه آن را باز میکنند یا MDM را دوباره راهاندازی میکنند.
یک گزارش شامل چه چیزهایی است
- چه اتفاقی افتاد: خطا و مکانی در کد MDM که در آن اتفاق افتاد.
- پشته: مکانی در کد MDM که در آن از کار افتاد یا متوقف شد، و هر بخش دیگر از آن چه کاری انجام میداد.
- گزارش اخیر MDM: به عنوان مثال "دستور AddUrl" یا "پنجره باز شد: add-url".
- سیستم: نسخه MDM و نحوه نصب آن، سیستم عامل و نسخه آن، پردازنده، زبان و تم، و تعداد دانلودها و صفهای شما. اینها فقط شمارش هستند.
این شامل نمیشود:
- آدرسهای دانلود یا نام فایلهای شما؛
- نام کاربری شما، که به صورت
~در مسیرهای پوشه نمایش داده میشود.
اگر یک پیام خطا چیزی را که شما تایپ کردهاید نقل قول کند، آن متن در گزارش موجود است، بنابراین قبل از ارسال آن را بخوانید.
فایل داده خرابی (.dmp) یک عکس فوری از آنچه MDM در آن لحظه در حال اجرا بود، است. این بیشترین کمک را به توسعهدهندگان میکند، اما میتواند قطعاتی از آنچه MDM در حافظه داشت، مانند آدرسهای دانلود، را در خود جای دهد. این فقط زمانی پیوست میشود که شما همچنین دادههای خرابی را پیوست کنید را علامت بزنید.
محل نگهداری گزارشها
در پوشه داده MDM:
crashes\: هر گزارش (.txt) و داده خرابی آن (.dmp)؛logs\: گزارش MDM (mdm.log، با گزارشهای قدیمیتر به عنوانmdm.1.logو غیره، هر کدام 2 مگابایت).
پوشه دادههای MDM در Windows، %APPDATA%\misterdownloadmanager، در macOS، ~/Library/Application Support/misterdownloadmanager، و در Linux، ~/.local/share/misterdownloadmanager است. در حالت قابل حمل، این پوشه data در کنار برنامه است.
گزارش آنچه را که MDM انجام میدهد ثبت میکند، بنابراین یک گزارش میتواند نشان دهد که چه چیزی منجر به مشکل شده است. برای ثبت جزئیات بیشتر، MDM را با متغیر محیطی MDM_LOG=debug راهاندازی کنید.
برای توسعهدهندگان
نحوه کار: یک کپی دوم از MDM، مانیتور، با --crash-monitor در کنار آن شروع میشود. کد خرابی در crates/crash و crates/app/src/crash.rs قرار دارد.
- گرفتن مشکلات. وقتی MDM از کار میافتد (یک استثنای Windows، یک سیگنال در Linux، یک استثنای Mach در macOS)، دچار وحشت میشود یا فریز میکند، از مانیتور یک دامپ میخواهد. فریز شدن به معنای این است که یک فریم از پنجره بیش از 8 ثانیه اجرا شود، که توسط یک رشته نگهبان که زمان خواب را نادیده میگیرد، مشاهده میشود. سپس مانیتور یک مینیدامپ از هر رشته را از بیرون، از طریق
minidumperوcrash-handlerمینویسد. یک فرآیند از کار افتاده هرگز دامپ خود را نمینویسد، که این همان روشی است که Firefox، Crashpad و Sentry نیز از آن استفاده میکنند. - خواندن فایل دامپ. مانیتور فایل دامپ را با
rust-minidumpموزیلا میخواند. اگر نمادهای Breakpad نسخه پیدا شوند، از آنها استفاده میکند؛ در غیر این صورت، از اطلاعات اشکالزدایی بومی در کنار یک بیلد از سورس استفاده میکند. امضای گزارش (برای مثالfreeze in misterdownloadmanager::winui::combo_edit) در گزارشهای مربوط به یک مشکل ثابت میماند و پنجره، مسائل موجود را بر اساس آن جستجو میکند. - نمادها. بیلدهای انتشار، جداول خط (
debug = "line-tables-only") را نگه میدارند، اما هیچ بارگیری شامل اطلاعات اشکالزدایی نیست. CI آن را بهMisterDownloadManager-<version>-symbols-<platform>.zip(tools/installer/symbols.py، با استفاده ازdump_symsموزیلا) تبدیل میکند که در کنار سایر فایلهای انتشار منتشر میشود. پنجره گزارش، زمانی که یک پشته آدرسهای خام را نشان میدهد، فایل فشرده مربوط به نسخه خود را واکشی میکند. .dmpاز یک مشکل:
cargo run -p mdm-crash --bin mdm-symbolicate -- crash.dmp MisterDownloadManager-<version>-symbols-windows-x64.zip
- آزمایش آن.
cargo test -p mdm-crashیک توقف، وحشت و خرابی واقعی (examples/crashy.rs) را اجرا میکند و امضای هر گزارش را بررسی میکند. برای امتحان آن در برنامه، MDM را باMDM_CRASH_TEST=1شروع کنید، سپسmisterdownloadmanager /show crash-test:freeze(یاpanic،crash،abort) را اجرا کنید.
رایگان، متنباز، بدون تبلیغات، بدون دوره آزمایشی.
بارگیری Mister Download Manager