.Pdb ফাইল উত্পন্ন উত্সাহ প্রকাশ, কেন?


264

.pdbরিলিজে সংকলন করার সময় কেন ভিজুয়াল স্টুডিও 2005 ফাইলগুলি তৈরি করে ? আমি একটি রিলিজ বিল্ড ডিবাগ করব না, তবে এগুলি কেন উত্পন্ন হয়?


18
রিলেজে পিডিবি কেন তৈরি করবেন? সুতরাং যখন বন্য থেকে ক্র্যাশ প্রতিবেদন আসে তখন আপনার এটি ডিবাগ করার তথ্য থাকবে। অন্য মানটি হ'ল গ্রাহকরা এটির ডিবাগ করতে পারবেন যখন মূল লেখক তা করবেন না।
ইয়ান বয়ড

@ ইয়ানবয়েড: এই মন্তব্যের দ্বিতীয় বাক্যটি বোঝায় যে আপনি পিডিবি'র অবস্থান নিযুক্ত করেছেন। এটি বেশিরভাগ ক্ষেত্রেই কাম্য নয়।
IInspectable


@ আইয়ানবয়েড: বেশিরভাগ ক্ষেত্রেই ওএস মোতায়েন অন্তর্ভুক্ত নয়। এছাড়াও, পিডিবি'র ব্যক্তিগত প্রতীকগুলি থাকে না, যখন আপনি পিডিবি তৈরি করেন তখন ডিফল্টরূপে অন্তর্ভুক্ত থাকে।
য়

@Inspectable অন্যদিকে, PBD প্রকাশ করা বাঞ্ছনীয়। আদর্শভাবে, হ্যাঁ, প্রত্যেকে আইএল-তে সংকলিত কোড লিখত, যাতে আমরা নিজেই প্রতীক তথ্য পেতে পারি। তবে নেটিভ কোড সংকলকগুলির ক্ষেত্রে ফিল্ডে ডিবাগিং সমর্থন করার সহজ কোনও উপায় নেই।
ইয়ান বয়ড

উত্তর:


416

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

আপনি এই বিষয়টি উল্লেখ করেছেন যে আপনার সফ্টওয়্যারটি যদি মুক্তির জন্য প্রস্তুত থাকে তবে ততক্ষণে আপনার সমস্ত ডিবাগিং করা উচিত ছিল। যদিও এটি অবশ্যই সত্য, মনে রাখার জন্য কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে:

  1. আপনি উচিত এছাড়াও পরীক্ষা এবং আপনার অ্যাপ্লিকেশন (আগে আপনি এটা মুক্তি) "রিলিজ" বিল্ড ব্যবহার ডিবাগ। এর কারণ অপ্টিমাইজেশানগুলি চালু করা ("ডিবাগ" কনফিগারেশনের অধীনে এগুলি ডিফল্টরূপে অক্ষম করা হয়) কখনও কখনও সূক্ষ্ম বাগগুলি দেখা দেয় যে আপনি অন্যথায় ধরেন না। আপনি যখন এই ডিবাগিংটি করছেন, আপনি PDB প্রতীকগুলি চাইবেন।

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

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

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

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

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

* যেহেতু মার্ক শেরম্যান একটি মন্তব্যে উল্লেখ করেছেন , যতক্ষণ না আপনার উত্স কোডটি পরিবর্তিত হয়নি (বা আপনি কোনও সংস্করণ-নিয়ন্ত্রণ সিস্টেম থেকে মূল কোডটি পুনরুদ্ধার করতে পারেন), আপনি এটি পুনর্নির্মাণ করতে এবং একটি মিলে যাওয়া পিডিবি ফাইল তৈরি করতে পারেন। কমপক্ষে, সাধারণত এটি বেশিরভাগ সময় ভালভাবে কাজ করে তবে প্রতিটি বার একই কোডটি সংকলন করার সময় সংকলকটি অভিন্ন বাইনারি তৈরির গ্যারান্টিযুক্ত নয় , সুতরাং সূক্ষ্ম পার্থক্য থাকতে পারে। সবচেয়ে খারাপ, যদি আপনি ইতিমধ্যে আপনার সরঞ্জামচেইনে কোনও আপগ্রেড করেছেন (যেমন ভিজ্যুয়াল স্টুডিওর জন্য কোনও সার্ভিস প্যাক প্রয়োগ করার মতো), পিডিবিগুলির মিলের সম্ভাবনাও কম। প্রাক্তন পোস্টফ্যাক্টোর নির্ভরযোগ্য প্রজন্মের গ্যারান্টি দেওয়াপিডিবি ফাইলগুলি, আপনাকে কেবল আপনার সংস্করণ-নিয়ন্ত্রণ সিস্টেমে উত্স কোডটিই নয়, আপনার সম্পূর্ণ বিল্ড টুলচেইনের বাইনারিগুলি নিশ্চিত করতে হবে যাতে আপনি অবশ্যই আপনার বিল্ড পরিবেশের কনফিগারেশনটি পুনরায় তৈরি করতে পারবেন। এটি পিডিবি ফাইলগুলি তৈরি করা এবং সংরক্ষণাগারভুক্ত করা অনেক সহজ is


19
"সংকলনের পরে আপনি PDB ফাইলগুলি তৈরি করতে পারবেন না।" - যদি আপনার উত্স কোডটি পরিবর্তন না হয় তবে আপনি সত্যের পরে ব্যবহারযোগ্য পিডিবি তৈরি করতে পুনর্নির্মাণ করতে পারেন। ডিফল্টরূপে, উইন্ডবিজি এই পিডিবি লোড করবে না তবে আপনি / i বিকল্পের মতো করে নির্দিষ্ট করে লোড করতে বাধ্য করতে পারেন .reload /i foo.dll। এটি foo.pdb লোড করবে এমনকি foo.pdb foo.dll প্রকাশের পরে তৈরি করা হয়েছিল।
মার্ক শেরম্যান

আমি লক্ষ্য করেছি যে প্রতিটি নতুন সংকলনে বিভিন্ন হ্যাশ ডাইজেস্ট রয়েছে, তাই একই পরিবেশেও প্রতিটি বিল্ডের সাথে সামান্য বৈকল্পিক রয়েছে। পিডিবিগুলির ঠিকানাগুলি কী বৈকল্পিকতার সাথে পরিবর্তিত হতে পারে না, সেইজন্য পিডিবিকে সেই বিল্ড থেকে রাখা দরকার? এটিকে কেবল একটি ধারণা হিসাবে তুলে ধরছি যেহেতু আমি সত্যিই বুঝতে পারি না যে পিডিবি কীভাবে কাজ করে বা কেন হ্যাশগুলি বিল্ডগুলির মধ্যে পরিবর্তিত হয়।
thebunnyrules

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

3
রোজলিনে একটি নতুন বৈশিষ্ট্য রয়েছে যার নাম ডিটারমিনিস্টিক বিল্ডস। "/ ডিটারমিনিস্টিক পতাকাটি একই সংকেতগুলি দেওয়া হলে বায়ার জন্য বাইট জন্য সঠিক একই EXE / DLL নির্গত করতে সংকলক তৈরি করে।" এর অর্থ কী এই প্রকল্পটি মূলত এই পতাকাটির সাথে সংকলিত হয়েছে, ঠিক সেই একই বাইনারিতে পুনরায় সংকলন করা যেতে পারে, যতক্ষণ আপনি সংকলন করছেন কোডটি একই থাকে।
কে স্মিথ

92

PDB Releaseপাশাপাশি উত্পন্ন করা যেতে পারে Debug। এটি সেট করা হয়েছে (ভিএস2010 এ তবে ভিএস ২০০৫ এ অবশ্যই একই রকম হবে):

প্রকল্প → বৈশিষ্ট্য → বিল্ড → উন্নত → ডিবাগ তথ্য

কেবল এটিতে পরিবর্তন করুন None


2
তবে কেন আপনি এটা করবেন? যদি আপনার সফ্টওয়্যার প্রকাশের জন্য প্রস্তুত থাকে তবে আপনার
ততক্ষণে

4
কারণ আপনি প্রোডাকশন ইস্যুগুলি ডিবাগ করতে পারেন। একবার আমাদের এটি করতে হয়েছিল।
Aliostad

21
উত্পাদন কোডের জন্য পিডিবির শিরোনামের সুবিধা হ'ল ব্যতিক্রম ছুঁড়ে দেওয়ার সময় নেট এই ফাইলগুলি ব্যবহার করবে। এটি ফাইলের নাম এবং লাইন নম্বর সহ স্ট্যাকের চিহ্ন তৈরি করে যা প্রায়শই খুব সহজ!
স্টিভেন

6
@ এম.এডমন্ডসন: হ্যাঁ, এটা ঠিক। আপনি এখনও অবগত হবেন কি নিক্ষিপ্ত ব্যতিক্রম ছিল (যেমন FileNotFoundException), কিন্তু আপনি একটি স্ট্যাক ট্রেস দেখতে সক্ষম হবেন না। এটি কোন কোডের লাইনটি ব্যতিক্রমটি ছুঁড়ে ফেলার কারণে ঠিক তা পিন করা খুব কঠিন করে তোলে ।
কোডি গ্রে

2
@ এম.এডমন্ডসন কেবল যোগ করার জন্য আপনি যদি আপনার প্রোডাকশন বাক্সগুলির মধ্যে যে কোনও একটি সমস্যা দূরবর্তীভাবে ডিবাগ করার জন্য কোনও সরঞ্জাম সন্ধান করছেন তবে উইন্ডোজ এসডিকে উইনডিবিজি নামে একটি খুব বিখ্যাত সরঞ্জাম নিয়ে আসে যা দূরবর্তী ডিবাগিং সমর্থন করে। দয়া করে নীচে উল্লিখিত লিঙ্কটি দেখুন। আশাকরি এটা সাহায্য করবে! এমএসডিএন.মাইক্রোসফটকম
আরবিটি

8

.Pdb ফাইল ছাড়া এটি উত্পাদন কোডের মাধ্যমে পদক্ষেপে কার্যত অসম্পূর্ণ; আপনাকে অন্যান্য সরঞ্জামগুলির উপর নির্ভর করতে হবে যা ব্যয়বহুল এবং সময় সাপেক্ষ হতে পারে। আমি বুঝতে পারি আপনি উদাহরণস্বরূপ ট্রেসিং বা উইন্ডবিজি ব্যবহার করতে পারেন তবে এটি আপনি কী অর্জন করতে চান তার উপর নির্ভর করে। নির্দিষ্ট পরিস্থিতিতে আপনি নির্দিষ্ট আচরণ পর্যবেক্ষণ করতে উত্পাদন ডেটা ব্যবহার করে কেবল রিমোট কোড (কোনও ত্রুটি বা ব্যতিক্রম নয়) দিয়ে পদক্ষেপ নিতে চান এবং এখানেই .pdb ফাইলগুলি কাজে আসে। তাদের ছাড়া সেই কোডটিতে ডিবাগারটি চালানো অসম্ভব।


7

আপনি কেন এতটা নিশ্চিত যে আপনি রিলিজ বিল্ডগুলি ডিবাগ করবেন না? কখনও কখনও (আশা করি খুব কমই ঘটে তবে ঘটে) আপনি কোনও গ্রাহকের কাছ থেকে কোনও ত্রুটি প্রতিবেদন পেতে পারেন যা কোনও কারণে ডিবাগ সংস্করণে পুনরুত্পাদনযোগ্য নয় (বিভিন্ন সময়, ছোট বিভিন্ন আচরণ বা যাই হোক না কেন)। যদি সমস্যাটি রিলিজ বিল্ডে পুনরায় উত্পাদনযোগ্য বলে মনে হয় আপনি মিলে যাওয়া পিডিবি পেয়ে খুশি হবেন।


5
@ এম.এডমন্ডসন আরডিপি, ওয়েবেক্স ইত্যাদি ব্যবহার করে দূরবর্তী মেশিনে অ্যাক্সেস পান এবং সেখানে উইন্ডবজি ইনস্টল করুন। আপনার প্রতীক পথ এবং বাম সেট আপ করুন, আপনি সোনার!
মার্ক শেরম্যান

আরও বিস্তারিত গাইডের একটি লিঙ্ক আরও সহায়ক হত। এই এক-লাইনটি কীভাবে লোককে (আমার মতো) ভুল ট্র্যাকে নিয়ে যেতে পারে। উদাহরণস্বরূপ বেশিরভাগ নেট নেটরা উইন্ডবজি সম্পর্কে কিছুই জানতে পারবে না।
নুজোলিলো

1
@ এম.এডমন্ডসন - ভিজ্যুয়াল স্টুডিওর কয়েকটি সংস্করণে দূরবর্তী ডিবাগিং করার ক্ষমতা রয়েছে। ডিবাগ মেনু থেকে আপনি দূরবর্তী মেশিনে "প্রক্রিয়াতে সংযুক্ত করুন"।
ম্যাথু

কোনও প্রোডাক্ট অ্যাপ্লিকেশন উদাহরণ দূরবর্তী ডিবাগ করা কি এত ভাল ধারণা? এটি কি থ্রেডের সমান্তরাল সম্পাদন ভেঙে দেবে এবং ডিবাগ করার সময় সিরিয়ালে চালাতে বাধ্য করবে না?
কাভেহ হাডজারি

4

এছাড়াও, আপনি আপনার সফ্টওয়্যারটি ডিবাগ করতে ক্র্যাশ ডাম্পগুলি ব্যবহার করতে পারেন। গ্রাহক এটিকে আপনার কাছে প্রেরণ করে এবং তারপরে আপনি এটি আপনার উত্সের সঠিক সংস্করণ সনাক্ত করতে ব্যবহার করতে পারেন - এবং ভিজ্যুয়াল স্টুডিও এমনকি ক্র্যাশ ডাম্পটি ব্যবহার করে ডিবাগিং প্রতীকগুলির সঠিক সেটটি (এবং উত্সটি যদি আপনি সঠিকভাবে সেট আপ করেন) টানবেন। সিম্বল স্টোরগুলিতে মাইক্রোসফ্টের ডকুমেন্টেশন দেখুন ।


2

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

আকারটি ডিবাগ মোডে .PDB ফাইলের বৃদ্ধি। যখন আমরা আমাদের অ্যাপ্লিকেশনটি পরীক্ষা করি তখন এটি ব্যবহৃত হয়।

পিডিবি ফাইলের ভাল নিবন্ধ।

http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P


1
"মুক্তি বা স্থাপনের সময় এই ফাইলটির কোনও প্রয়োজন নেই" ব্যতীত যখন কেউ সেই প্রকাশিত সংস্করণে কোনও ক্র্যাশ অনুভব করে এবং আপনার কাছ থেকে পাওয়া ক্র্যাশ রিপোর্টে ব্যবহারযোগ্য স্ট্যাক ট্রেস থাকে না ... তবে আপনি চাইবেন আপনি এটির পরে অন্তর্ভুক্ত করেছেন সব।
নাইয়ারগডস

সত্য না. .Pdb ফাইল ব্যতীত আপনি পুরো স্ট্যাকট্রেস পাবেন তবে উত্স ফাইলগুলির নাম ছাড়াই। ক্র্যাশ প্রতিবেদন পাওয়ার পরে আপনি তা ঘরে ঘরে পুনরুদ্ধার করতে পারেন। যদি আপনি আপনার বৌদ্ধিক অধিকার এবং অবলম্বন উত্স সম্পর্কে যত্নশীল হন তবে আপনাকে .pdb ফাইলগুলি সংরক্ষণ করতে হবে তবে সেগুলি স্থাপন করা নয়।
শীর্ষ কেই

1

একটি বহু-প্রকল্প সমাধানে, আপনি সাধারণত এমন একটি কনফিগারেশন রাখতে চান যা কোনও PDB বা এক্সএমএল ফাইল তৈরি করে না। Debug Infoপ্রতিটি প্রকল্পের সম্পত্তি পরিবর্তন করার পরিবর্তে none, আমি ভেবেছিলাম যে একটি বিল্ড-পরবর্তী ইভেন্ট যুক্ত করা আরও সমীচীন হবে যা কেবলমাত্র একটি নির্দিষ্ট কনফিগারেশনে কাজ করে।

দুর্ভাগ্যক্রমে, ভিজ্যুয়াল স্টুডিও আপনাকে বিভিন্ন কনফিগারেশনের জন্য পোস্ট-বিল্ড ইভেন্টগুলি নির্দিষ্ট করার অনুমতি দেয় না। সুতরাং আমি csprojস্টার্টআপ প্রকল্পের ফাইল সম্পাদনা করে এবং নিম্নলিখিতগুলি (কোনও বিদ্যমান PostBuildEventট্যাগের পরিবর্তে ) যুক্ত করে নিজেই এটি করার সিদ্ধান্ত নিয়েছি :

  <PropertyGroup Condition="'$(Configuration)' == 'Publish'">
    <PostBuildEvent>
        del *.pdb
        del *.xml
    </PostBuildEvent>
  </PropertyGroup>

দুর্ভাগ্যক্রমে, এটি পোস্ট তৈরির ইভেন্ট পাঠ্যবাক্সকে ফাঁকা করে দেবে এবং এতে কোনও কিছু রাখলে অনাকাঙ্ক্ষিত ফলাফল হতে পারে।


4
এটি সমস্ত *.xmlফাইল মুছে ফেলবে , এর সাথে সাবধানতা অবলম্বন করুন।
মারিউজ জামরো

0

ডিবাগ প্রতীক ( .pdb) এবং এক্সএমএল ডক ( .xML) ফাইলগুলি মোট আকারের একটি বিশাল শতাংশ তৈরি করে এবং নিয়মিত স্থাপনার প্যাকেজের অংশ হওয়া উচিত নয়। তবে প্রয়োজনে তাদের অ্যাক্সেস করা উচিত possible

একটি সম্ভাব্য পন্থা: টিএফএস বিল্ড প্রক্রিয়া শেষে, তাদের একটি পৃথক নিদর্শনগুলিতে সরিয়ে দিন।


-1

আসলে পিডিবি ফাইল এবং প্রতীকী তথ্য না থাকলে তাদের কাছে একটি সফল ক্র্যাশ রিপোর্ট (মেমরি ডাম্প ফাইল) তৈরি করা অসম্ভব এবং মাইক্রোসফ্টের সমস্যার কারণ কী তা নিয়ে সম্পূর্ণ চিত্র থাকবে না।

এবং তাই পিডিবি থাকা ক্র্যাশ রিপোর্টিংয়ের উন্নতি করে।


কিন্তু .pdb ফাইল ছাড়া নিখোঁজ হবে কি?
শীর্ষ কেকে

সংকলনের পরে আপনি PDB ফাইলগুলি তৈরি করতে পারবেন না। সুতরাং মেজর.মিনার [। বিল্ড [। পুনর্বিবেচনা]] সফ্টওয়্যারটির প্রতিটি সংস্করণ মাইক্রোসফ্টে সংরক্ষণ করা উচিত ছিল যা ঘটেছিল তা সঠিকভাবে বুঝতে পারার জন্য, তবে এটি সমস্ত কিছু নয়।
প্রোস্টি 17'19

প্রতিবার একই কোডটি সংকলন করার সময় সংকলকটি অভিন্ন বাইনারি তৈরির গ্যারান্টিযুক্ত নয়।
প্রেস্টি

প্রশ্নটি ছিল ক্র্যাশ প্রতিবেদনে কী অনুপস্থিত হবে এবং ক্র্যাশ প্রতিবেদন কীভাবে প্রভাবিত হবে। .NET পিডিবি ফাইলগুলিতে কেবলমাত্র ব্যক্তিগত ভেরিয়েবলের নাম এবং উত্স ফাইলের নাম থাকে। অন্য সমস্ত কিছু (পদ্ধতির নাম, স্বাক্ষর ইত্যাদি) মেটাডেটা তথ্য থেকে স্ট্যাকট্রেসে থাকবে।
শীর্ষ কেকে

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