Gdb (osx) এ কোনও ফাইলে মেমরি ডাম্প করবেন কীভাবে? আমার কাজ উদ্ধার করা প্রয়োজন


9

আমার জানার দরকার কীভাবে আমি একটি ফাইলে সাফারি.অ্যাপে মেমরি ডাম্প করতে পারি।

আমি জিডিবি সংযুক্তি entered74 (১ (আমার সাফারি পিআইডি) দিয়েছি।

এখন কি?

আমি গুগলে জিডিবিতে সাহায্যের সন্ধান করার চেষ্টা করেছি, তবে "জিডিবিতে কীভাবে মেমরি ডাম্প করতে হয়" সন্ধানের পরেও আমাকে কী করতে হবে তা বলার মতো কিছুই আমি পাইনি :(

আমি "সহায়তা ডাম্প" চেষ্টা করেছিলাম, এটি আমাকে একগুচ্ছ কমান্ড দিয়েছে, কিন্তু তাদের কোনওটিই কাজ করে নি। সবচেয়ে কাছাকাছি আমি এসেছিলাম:

(gdb) dump memory ~/safaridump.bin 0
Missing stop address.

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

আমি এটি চেষ্টা করেছি:

(gdb) ডাম্প মেমরি sa / safaridump.bin 0 0xffffffff

এটিও কাজ করেনি।

আমি এটা বুজেছি:

gdb stack crawl at point of internal error:
0   gdb-i386-apple-darwin               0x0012fd8f internal_vproblem + 316
1   gdb-i386-apple-darwin               0x0012ffd3 internal_verror + 43
2   gdb-i386-apple-darwin               0x00130008 align_down + 0
3   gdb-i386-apple-darwin               0x00130a21 xstrvprintf + 0
4   gdb-i386-apple-darwin               0x00130c25 xmalloc + 40
5   gdb-i386-apple-darwin               0x000045d6 dump_memory_to_file + 241
6   gdb-i386-apple-darwin               0x0012dd3d execute_command + 713
7   gdb-i386-apple-darwin               0x0008815d command_handler + 213
8   gdb-i386-apple-darwin               0x000891af command_line_handler + 1120
9   gdb-i386-apple-darwin               0x001c2486 rl_callback_read_char + 137
10  gdb-i386-apple-darwin               0x000882ed rl_callback_read_char_wrapper + 18
11  gdb-i386-apple-darwin               0x000874b7 handle_file_event + 349
12  gdb-i386-apple-darwin               0x00086e7e process_event + 131
13  gdb-i386-apple-darwin               0x00087c38 gdb_do_one_event + 1178
14  gdb-i386-apple-darwin               0x00081bfd catch_errors + 78
/SourceCache/gdb/gdb-1346/src/gdb/utils.c:1208: internal-error: virtual memory     exhausted.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n

আমি সত্যিই এই না। আমি যা চাই তা সাফারিতে আমার স্মৃতি, কোনও ফাইলে লেখা।

এটি আমার কাছে সত্যই গুরুত্বপূর্ণ। আমি প্রায় 2 ঘন্টা সাফারিতে আমার দুর্বল হৃদয় টাইপ করে কিছু সত্যিকারের গুরুত্বপূর্ণ তথ্য লিখেছিলাম। এবং তারপরে আমি যে বোকা ওয়েবসাইটটিতে লিখছিলাম, আমার পোস্টটি গ্রহণ করে নি, কারণ আমি এত দীর্ঘ সময় নিয়ে এটি লিখেছিলাম, যে আমি "সাইন আউট" করেছি। আমি আবার সাইন ইন করার পরে, আমার পোস্টটি হারিয়ে গেল।

আমি সত্যিই এই লেখা ফিরে চাই। আমি যা চাই তা সাফারি থেকে প্রাপ্ত স্মৃতি, তাই আমি আমার লিখিত বিষয়গুলি আবার ফিরে পেতে পারি কিনা তা দেখার জন্য কয়েকটি কীওয়ার্ডের জন্য এর সামগ্রীগুলির মধ্যে অনুসন্ধান করতে পারি।

কোন ধারণা কেউ?

খুব কমপক্ষে, আমার লেখাটি ফিরে না পেলেও আমি জিডিবি সম্পর্কে কিছু শিখব। যা আমার সফ্টওয়্যার বিকাশের কাজে আসতে পারে;)

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

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

...

http://www.mail-archive.com/use-revolution@lists.runrev.com/msg22978.html এই পৃষ্ঠাতে বলা হয়েছে যে কিল -9 একটি কোর ডাম্প তৈরি করে না। এই পৃষ্ঠাটি যা বলেছে তা সত্ত্বেও http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html#SECCOREDUMPS , এই কমান্ডটি "কিল-এবিআরটি (পিআইডি এখানে)" তৈরি করবে না dump

ls -la /cores
total 0
drwxrwxr-t@  2 root  admin    68 23 Jun 07:19 .
drwxrwxr-t  38 root  admin  1360 14 Dec 16:06 ..
macos  gdb 

1
+1 সহানুভূতি বৃদ্ধি - আপনি ইতিমধ্যে যা চেষ্টা করেছেন তা দিয়ে আমি আপনার তথ্য পুনরুদ্ধারের সম্ভাবনা সম্পর্কে আশাবাদী নই। তবে এটি একটি বৈধ ডিবাগিং প্রশ্ন, স্পষ্টভাবে লিখিত, প্রাসঙ্গিক বিবরণ অন্তর্ভুক্ত: আমি মনে করি না যে এটি ডাউনভোট হওয়ার যোগ্য!
জিম লুইস

NSD। আপনি কিভাবে গাদা শেষ খুঁজে পাবেন? আপনার কাছে নম্বরটি ফিরিয়ে আনতে আপনার টাইপ করতে কমান্ডটি কী? আপনি কি আসলে জানেন? বা আপনি কি আমাকে সাহায্য না করার চেষ্টা করছেন?

এটি খুব ভাল কাজ করছে না। আমি এটি চেষ্টা করেছি: < বিকাশকারী / অ্যাপ্লিকেশন / ম্যাক / লাইবারি / ডকোমেন্টেশন / ডেভেলপারটুলস / / > সুতরাং আমি "gcore bla2.bin" টাইপ করেছি। এবং অনুমান আমি পেতে পারি? "অপরিজ্ঞাত কমান্ড:" gcore "।" সহায়তা "চেষ্টা করুন।" অ্যাপলের ডক্স বলছে যে কিছু সিস্টেমে এই ফাংশনটি উপলব্ধ নেই। আমার ধারণা ম্যাকসও খুব? আমি অবাক হয়েছি কেন অ্যাপলের ডক্সে ইউনিক্সি জিডিবিতে জেনেরিক তথ্য থাকবে যা ওএসএক্সের আচরণটি নির্দিষ্ট করে না ...

বিকাশকারী.অ্যাপল .com/ ম্যাক / লাইব্রেরি / ডকোমেন্টেশন / ডেভেলপারটুলস / the লিংকটি কি কোনওভাবে ভেঙে গেছে?

আরও কিছু পরীক্ষা-নিরীক্ষার পরে আমি এটি খুঁজে পেলাম: "বাইনারি মেমরি ডাম্প করুন d / dump3.bin 0 0x0000FFFF" এমন কিছু ডেটা তৈরি করেছে যা সম্পূর্ণ শূন্য ছিল না। তবে ... এখানে মূল্যমানের কিছুই ছিল না এবং এটি ছিল কেবল প্রথম 64KB। এটি ... "বাইনারি মেমোরি dump / dump3.bin 0 0x000fFFFF" পুরোপুরি শূন্যযুক্ত একটি ফাইল তৈরি করেছে। 1MB জিরো। কেন আমি জানি না। আমার অনুমান (যতক্ষণ না কেউ জানেন যে জিডিবি কীভাবে ব্যবহার করতে হয় বাস্তবে সহায়তা করে), আমি হ'ল "অব্যবহৃত" অঞ্চলগুলি পেরিয়েছি, সেগুলি মলোক দ্বারা বরাদ্দ করা হয়নি। এবং এই কারণে, জিডিবি জিরোগুলি আউটপুট করে। সর্বোপরি,

উত্তর:


6

ওহে সবাই, আমি ওএসএক্সে কীভাবে একটি কর্ডার্প তৈরি করতে পেলাম!

http://osxbook.com/book/bonus/chapter8/core/

উত্স আকারে একটি ডাউনলোডযোগ্য প্রোগ্রাম রয়েছে। আমি এটি ডাউনলোড করেছি, সংকলন করেছি এবং হুর! এটা কাজ করেছে! এটি প্রায় 1GB কোর ডাম্প তৈরি করেছে!

তথ্য সেখানে আছে কি নেই এখন তা মোটেই গুরুত্বপূর্ণ নয়। আমি কীভাবে ওএসএক্সে সোরডাম্প তৈরি করতে শিখেছি, এটি অবশ্যই সফ্টওয়্যার বিকাশকারী হিসাবে একটি দক্ষ দক্ষতা হতে পারে;) আপনি কখনই জানেন না যে কোনও কোর ডাম্প কখন কাজে আসতে পারে।

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


1
আপনি এটি দিয়েও ইনস্টল করতে পারেন: ব্রিউ ইনস্টল জিগোর
গুডো

আপনি দ্রুত gcore ইনস্টল করতে এই নির্দেশাবলী এখানে ব্যবহার করতে পারেন । যদি এটি বলে যে "বাশ: ব্রিউ: কমান্ড পাওয়া যায় নি" তবে এই লিঙ্কটি ব্যবহার করে হোমব্রু ইনস্টল করুন
আমি_বিহীন_মুখে

gcore10.12 সিয়েরা থেকে ম্যাকোজে অন্তর্ভুক্ত । এটিতে অবস্থিত /usr/bin/gcoreএবং এতে একটি ম্যান পৃষ্ঠা রয়েছে /usr/share/man/man1/gcore.1। এটি হোমব্রিউ দ্বারা আরও নিশ্চিত করা হয়েছে যা সিয়েরা বা উচ্চতরতে ইনস্টল gcoreকরতে অস্বীকার করেছে/usr/local/bin
জিডিপি 2

1

সাফারি একটি এনক্রিপ্ট করা ডাটাবেস ফাইলে সমস্ত ফর্মের ফর্ম ডেটা সংরক্ষণ করে (আপনি এটি বন্ধ না করে, বা সাইটটি সংরক্ষণ করা যায় না-হিসাবে ফর্মটি চিহ্নিত করে)। আপনি আপনার লগইন কীচেইনে ফাইলটির পাসওয়ার্ড খুঁজে পেতে পারেন এবং ফাইলটি উপস্থিত রয়েছে ~/Library/Safari/Form Values, সুতরাং তাত্ত্বিকভাবে আপনি ফাইলটি থেকে ডেটা বের করতে পারেন এবং আপনি যা টাইপ করেছেন তা সেখানে আছে কিনা তা দেখতে পারেন।

যাইহোক, আমি একটি হ্যাক পেয়েছি, এবং ফাইলটি কী ফর্ম্যাট, বা এটি কীভাবে এনক্রিপ্ট করা হয়েছে আমি তা নিয়ে কাজ করতে পারি না, সুতরাং কীভাবে বিষয়বস্তুগুলি পাওয়া যায় তা আমি জানি না, আমি নিশ্চিত কেউই যদিও এটি করেছে :)


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

স্বয়ংক্রিয় সম্পূর্ণ জিনিস পোস্ট সামগ্রীর জন্য কাজ করে না। এটি কেবল একক লাইন ক্ষেত্রের জন্য কাজ করে। শত লাইন সহ পুরো নিবন্ধ নয়।

ধন্যবাদ। আমি সন্দেহ করি যে এই ফাইলটিতে পোস্টের সামগ্রী রয়েছে। আমি 2 জিবি ফাইল তৈরি করে 0 থেকে 7ffffFFFF ডাম্প করার ব্যবস্থা করেছিলাম। তবে এটিতে পুরো শূন্য রয়েছে বলে মনে হয়। এখানে কিছু ঠিক নেই। কেন এটি হবে ?: মেমোরি dump / bla.bin 0 0x7fffFFFF পুরোপুরি জিরো সমন্বিত একটি ফাইলে ফলাফল ফেলবে? সাফারি চলছে না জিরোতে? আমি ধরে নিচ্ছি এর ভিতরে কিছু কোড থাকতে হবে? ;)

0

আপনি সর্বদা জিডিবিতে লগইন চালু করতে পারেন set logging on

তারপরে, আপনি যা কিছু করেন তা লগ ফাইলে মুদ্রিত হয় (সাধারণত gdb.txt)। সুতরাং আপনি xকমান্ডটি ব্যবহার করে কেবল মেমরি মুদ্রণ শুরু করতে পারেন , এবং সমস্ত কিছু লগ ফাইলের পাশাপাশি স্ক্রিনে যাবে।


0

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


-1

আমি জানি, পুরানো থ্রেড ...

বর্তমান প্রক্রিয়া / প্রোগ্রামের মূল চিত্রটি ডাম্প করার জন্য জিডিবিতে বিল্ট ইন কমান্ড রয়েছে।

generate-core-file [filename]
gcore [filename]

উভয় আদেশ, ফাইলের নাম ঐচ্ছিক, ডিফল্টে একই কাজ ' কোর। <process_ip> '

হাহ! দেখে মনে হচ্ছে এমনকি একটি চলমান প্রোগ্রামটিও ডাম্প করার জন্য 'gकोर' নামে একটি ইউটিলিটি ইনস্টল করা আছে (জিডিবি সহ)। অবশ্যই, প্রক্রিয়াটি জিডিবি দিয়ে বিরতি দেওয়া সহজ, তারপরে এটি ফেলে দিন।

প্রতিদিন নতুন জিনিস সন্ধান করা! ... তবে জিডিবিতে অন্তর্নির্মিত ফাংশন রয়েছে ... ঠিক তাই তুমি জানো ..


(gdb) gcore Undefined command: "gcore". Try "help". (gdb) generate-core-file Undefined command: "generate-core-file". Try "help".
স্লিপ ডি থম্পসন

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