পিডিবি ফাইল কী?


251

পিডিবি ফাইল কী এবং আমি যখন আমার সমাধানটি পুনর্নির্মাণ করি তখন কীভাবে আমি এটি মুক্তির ফোল্ডার থেকে বাদ দিতে পারি?


17
পিডিবি একটি প্রোগ্রাম ডাটাবেস ফাইল এবং এটি সংকলনটিতে তৈরি করা হয়। এই ফাইলটি ডিবাগিং এবং প্রকল্পের স্থিতির তথ্য ধারণ করে যা আপনার প্রোগ্রামের একটি ডিবাগ কনফিগারেশনের বর্ধিত লিঙ্কটিকে মঞ্জুরি দেয়।
প্যাভার্ড

@ পেভ্যানারেড আপনি কি নিশ্চিত যে সি # সংকলক এছাড়াও বর্ধিত লিঙ্কটি করবে? আমি কেবল সি ++ বিশ্বে এটি সম্পর্কে শুনেছি। একটি সি ++ প্রকল্পে আপনি প্রকল্পের বৈশিষ্ট্য থেকে বর্ধিত লিঙ্ক সক্ষম / অক্ষম করুন। সি # প্রকল্পেও কি বিকল্প আছে?
আরবিটি

উত্তর:


235

একটি PDB ফাইলে ডিবাগারটির সাথে কাজ করার জন্য তথ্য রয়েছে। কোনও রিলিজ বিল্ডে তথ্যের চেয়ে কম ডেবিগ বিল্ডের চেয়ে কম তথ্য রয়েছে। তবে আপনি যদি এটি একেবারেই উত্পন্ন না করা চান তবে আপনার প্রকল্পের বিল্ড বৈশিষ্ট্যগুলিতে যান, রিলিজ কনফিগারেশনটি নির্বাচন করুন, "অ্যাডভান্সড ..." ক্লিক করুন এবং "ডিবাগ তথ্য" চয়ন করুন "কিছুই নয়"।


2
@ জোন যদি অ্যাপ্লিকেশনটি ক্র্যাশ হয় তবে এটি ব্যবহারকারীকে অতিরিক্ত তথ্য সরবরাহ করতে সহায়তা করে? (যেমন, "এই প্রোগ্রামটি শেষ হওয়া দরকার, উইন্ডোজ ত্রুটি প্রতিবেদনটি প্রেরণ করা উচিত" এর পরিবর্তে এটি জেআইটি উইন্ডোতে সহায়তা করে)
জ্যারেড হারলে

19
মনে রাখবেন যে আপনার সম্ভবত এটিগুলি আপনার ডিবাগ রিলিজগুলিতে অন্তর্ভুক্ত রাখা উচিত, কারণ এটি ব্যতিক্রমগুলি আপনার কোডের একটি নির্দিষ্ট লাইনে সনাক্ত করতে দেয়। পিডিবি ফাইলে চিহ্নগুলি না থাকলে নির্দিষ্ট সমস্যাগুলি সমাধান করার জন্য আপনার নির্দিষ্ট সমস্যাগুলি চিহ্নিত করা খুব কঠিন হবে। রিলিজ বিল্ডগুলি থেকে আপনাকে অবশ্যই তাদের বাদ দেওয়ার দরকার নেই, কারণ কখনও কখনও বড় প্রতিবেদনে অতিরিক্ত তথ্য খুব কার্যকর হতে পারে।
দার্বিও

4
@ জ্যারেড: হ্যাঁ, এটিতে ব্যতিক্রমের স্ট্যাক ট্রেস রয়েছে, যা একটি নির্দিষ্ট ফাংশন এবং কোডের লাইনকে নির্দেশ করবে।
দার্বিও

1
@ জ্যারেড: "জেআইটি উইন্ডো" বলতে কী বোঝ? এটি ব্যবহারকারীর কাছে অনেক বেশি তথ্য দেওয়ার সম্ভাবনা নেই, তবে আপনাকে যদি প্রয়োজন হয় তবে এটি আপনাকে একটি রিলিজ বিল্ডে কোনও ডিবাগার সংযুক্ত করতে দেয়। সাধারণত আপনি এটি শেষ-ব্যবহারকারী অ্যাপ্লিকেশনগুলির জন্য অন্তর্ভুক্ত করবেন না। অবশ্যই, এটি রিলিজ ফোল্ডারে অনুলিপি করার অর্থ এই নয় যে আপনাকে এটি ইনস্টলারে
পাঠিয়ে দিতে হবে

3
@ আতা: পিডিবি, পিডিএফ নয়। দয়া করে দুটি মনে মনে আলাদা করুন - এগুলি বিভিন্ন উদ্দেশ্যে সম্পূর্ণ আলাদা ফাইল ফর্ম্যাট। একটি পিডিবি সহ বিশেষত কোনও সমস্যা চালু করা হবে না; এটা হতে পারে একটি হ্যাকার কাজ করতে একটু সহজ, কিন্তু আপনার জন্য একটি বিশেষ উদ্বেগ প্রকাশ করেছেন যে? সাধারণভাবে .NET বেশিরভাগ ক্ষেত্রে অপেক্ষাকৃত সহজেই সংশ্লেষিত হতে পারে - আপনি যদি এই বিষয়ে উদ্বিগ্ন হন তবে পিডিবিকে শিপিং করা ভাল সমাধান নয়।
জন স্কিটি

129

আমি প্রথমে নিজেকে জিজ্ঞাসা করেছি " আমার গ্রাহকের মেশিনে মোতায়েন করা একটি পিডিবি ফাইল দরকার? " এবং এই পোস্টটি পড়ার পরে, ফাইলটি বাদ দেওয়ার সিদ্ধান্ত নিয়েছে।

সবকিছু ঠিকঠাক ছিল, আজ অবধি, যখন আমি একটি বার্তা বাক্সে Exception.StackTraceফাইল এবং লাইন নম্বর তথ্য অনুপস্থিত ছিল তা নির্ধারণ করার চেষ্টা করছিলাম - ব্যতিক্রমটি সমস্যা সমাধানের জন্য প্রয়োজনীয়। আমি এই পোস্টটি পুনরায় পড়লাম এবং তথ্যের মূল সজ্জাটি পেয়েছি: পিডিবি যদিও অ্যাপটি চালানোর জন্য প্রয়োজনীয় নয়, ফাইল এবং লাইন নম্বরগুলির StackTraceস্ট্রিংটিতে উপস্থিত থাকা প্রয়োজনীয় । আমি এক্সিকিউটেবল ফোল্ডারে পিডিবি ফাইল অন্তর্ভুক্ত করেছি এবং এখন সব ঠিক আছে।


2
accepted answerএখানে এটি উল্লেখ না করে মনে রাখার জন্য এটি একটি খুব গুরুত্বপূর্ণ অংশ ।
মনকু

85

পিডিবি জন্য একটি সমাহার হয় পি rogram ডি ATA বি ASE। নামটি যেমন বোঝায়, আপনার প্রোগ্রামটি ডিবাগ মোডে চালানোর জন্য প্রয়োজনীয় তথ্য বজায় রাখা এটি একটি সংগ্রহস্থল (ক্রমাগত স্টোরেজ যেমন ডেটাবেস)। এটিতে আপনার কোডটি ডিবাগ করার সময় প্রয়োজনীয় অনেকগুলি প্রাসঙ্গিক তথ্য রয়েছে (ভিজ্যুয়াল স্টুডিওতে), উদাহরণস্বরূপ আপনি কোন বিন্দুতে ব্রেক ব্রেক পয়েন্ট সন্নিবেশ করেছেন যেখানে ভিজুয়াল স্টুডিওতে আপনি ডিবাগারটি ভাঙ্গার প্রত্যাশা করেন।

এ কারণেই যদি আপনি *.pdbআপনার ডিবাগ ফোল্ডারগুলি থেকে ফাইলগুলি সরিয়ে থাকেন তবে বহুবার ভিজ্যুয়াল স্টুডিও ব্রেক পয়েন্টগুলিতে আঘাত করতে ব্যর্থ হয় । ভিজ্যুয়াল স্টুডিও ডিবাগারও আপনাকে ফাইলের সুনির্দিষ্ট লাইন সংখ্যাটি বলতে সক্ষম করতে পেরেছেন যেখানে ফাইলের সাহায্যে একটি স্ট্যাক ট্রেসে ব্যতিক্রম ঘটেছিল *.pdb। প্রোগ্রাম ডিবাগ করার সময় কার্যকরভাবে পিডিবি ফাইলগুলি বিকাশকারীদের পক্ষে সত্যই वरदान।

সাধারণত এটি *.pdbফাইলের প্রজন্মকে বাদ দেওয়ার পরামর্শ দেওয়া হয় না । প্রোডাকশন রিলিজ স্ট্যান্ড-পয়েন্ট থেকে আপনার কী করা উচিত তা হ'ল পিডিবি ফাইল তৈরি করুন তবে সেগুলি প্রোডাক্ট ইনস্টলারের গ্রাহক সাইটে প্রেরণ করবেন না। সমস্ত উত্পন্ন পিডিবি ফাইলগুলি প্রতীক সার্ভারে সংরক্ষণ করুন যেখানে থেকে প্রয়োজনে ভবিষ্যতে এটি ব্যবহার / রেফারেন্স করা যায়। বিশেষত ক্ষেত্রে যখন আপনি প্রক্রিয়া ক্র্যাশের মতো সমস্যাগুলি ডিবাগ করেন। আপনি যখন ক্র্যাশ ডাম্প ফাইলগুলি বিশ্লেষণ করা শুরু করেন এবং যদি *.pdbবিল্ড প্রক্রিয়া চলাকালীন আপনার আসল ফাইলগুলি সংরক্ষণ না করা হয় তবে ভিজ্যুয়াল স্টুডিও কোডটির সঠিক লাইন তৈরি করতে সক্ষম হবে না যা ক্র্যাশ ঘটছে

আপনি যদি এখনও *.pdbকোনও রিলিজের জন্য ফাইলের প্রজন্ম সম্পূর্ণরূপে অক্ষম করতে চান তবে প্রকল্পের বৈশিষ্ট্যগুলিতে যান -> ট্যাব তৈরি করুন Advanced-> বোতামে ক্লিক করুন -> none"ডিবাগ তথ্য" ড্রপ-ডাউন বাক্স থেকে চয়ন করুন -> OKনীচের স্ন্যাপশটে প্রদর্শিত হিসাবে টিপুন ।

কোনও সি # প্রকল্পের জন্য কোনও ডিবাগ তথ্য সেটিং নেই

দ্রষ্টব্য : "ডিবাগ" এবং "রিলিজ" বিল্ড কনফিগারেশনগুলির জন্য এই সেটিংটি আলাদাভাবে করতে হবে।


13

একটি পিডিবি ফাইলের মধ্যে ডিবাগার দ্বারা ব্যবহৃত তথ্য থাকে। এটি আপনার অ্যাপ্লিকেশন চালানোর প্রয়োজন হয় না এবং এটি আপনার প্রকাশিত সংস্করণে অন্তর্ভুক্ত করার প্রয়োজন হয় না।

আপনি ভিজুয়াল স্টুডিওতে তৈরি হতে পিডিবি ফাইলগুলি অক্ষম করতে পারেন। আপনি যদি কমান্ড লাইন বা স্ক্রিপ্ট থেকে নির্মাণ করছেন তবে /Debugস্যুইচটি বাদ দিন ।


2
রিলিজ মোড এখনও ডিফল্টরূপে PDB তৈরি করে, আমি বিশ্বাস করি। এটি অক্ষম করার জন্য আপনি প্রকল্পের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন।
জন স্কিটি

হা; এটি এখনও একটি ডিফল্ট প্রকল্পের সাথে মুক্তির সাথে আসে।
অ্যান্ড্রু বারবার

আমি কেবল চেক করেছি এবং ভিজুয়াল স্টুডিও ব্যবহার করে আমি ডিফল্টরূপে একটিও পাই।
মার্ক বাইয়ার্স

4

প্রোগ্রাম ডিবাগ ডাটাবেস ফাইল (পিডিবি) মাইক্রোসফ্টের ডিবাগিং তথ্য সংরক্ষণের জন্য একটি ফাইল ফর্ম্যাট।

আপনি যখন ভিজ্যুয়াল স্টুডিও বা কমান্ড প্রম্পট ব্যবহার করে একটি প্রকল্প তৈরি করেন তখন সংকলক এই প্রতীক ফাইলগুলি তৈরি করে।

মাইক্রোসফ্ট ডক্স পরীক্ষা করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.