কীভাবে কেউ জিডিবি দিয়ে স্ট্যাকের সামগ্রী দেখতে পাবে?


102

আমি জিডিবিতে নতুন, তাই আমার কিছু প্রশ্ন রয়েছে:

  • আমি কীভাবে স্ট্যাকের সামগ্রী দেখতে পারি? উদাহরণ: নিবন্ধের সামগ্রী দেখতে, আমি টাইপ করি info registers। স্ট্যাকের জন্য, এটি কী হওয়া উচিত?

  • কীভাবে আমি এর সামগ্রী দেখতে পারি $0x4(%esp)? আমি যখন টাইপ করি তখন print /d $0x4(%esp)জিডিবি একটি ত্রুটি দেয়।

প্ল্যাটফর্ম: লিনাক্স এবং জিডিবি


উত্তর:


121

info frame স্ট্যাক ফ্রেম তথ্য প্রদর্শন করতে

প্রদত্ত ঠিকানায় মেমরিটি পড়ার জন্য আপনার একবার নজর দেওয়া উচিত x

x/x $espহেক্স জন্য x/d $espস্বাক্ষরিত জন্য x/u $espস্বাক্ষরবিহীন ইত্যাদি x এর জন্য বিন্যাস সিনট্যাক্স ব্যবহার করে, আপনি বর্তমান নির্দেশ মাধ্যমে কটাক্ষপাত করা যেতে পারে x/i $eipইত্যাদি


73

ব্যবহার:

  • bt - ব্যাকট্রেস: স্ট্যাক ফাংশন এবং আরোগুলি দেখান
  • info frame - স্ট্যাক শুরু / শেষ / আরগস / স্থানীয় পয়েন্টার দেখান
  • x/100x $sp - স্ট্যাক মেমরি দেখান
(gdb) bt
#0  zzz () at zzz.c:96
#1  0xf7d39cba in yyy (arg=arg@entry=0x0) at yyy.c:542
#2  0xf7d3a4f6 in yyyinit () at yyy.c:590
#3  0x0804ac0c in gnninit () at gnn.c:374
#4  main (argc=1, argv=0xffffd5e4) at gnn.c:389

(gdb) info frame
Stack level 0, frame at 0xffeac770:
 eip = 0x8049047 in main (goo.c:291); saved eip 0xf7f1fea1
 source language c.
 Arglist at 0xffeac768, args: argc=1, argv=0xffffd5e4
 Locals at 0xffeac768, Previous frame's sp is 0xffeac770
 Saved registers:
  ebx at 0xffeac75c, ebp at 0xffeac768, esi at 0xffeac760, edi at 0xffeac764, eip at 0xffeac76c

(gdb) x/10x $sp
0xffeac63c: 0xf7d39cba  0xf7d3c0d8  0xf7d3c21b  0x00000001
0xffeac64c: 0xf78d133f  0xffeac6f4  0xf7a14450  0xffeac678
0xffeac65c: 0x00000000  0xf7d3790e

59

আপনাকে জিডিবির মেমরি-ডিসপ্লে কমান্ড ব্যবহার করতে হবে। প্রাথমিকটি হল x, পরীক্ষার জন্য । লিঙ্ক-টু পৃষ্ঠায় একটি উদাহরণ রয়েছে যা ব্যবহার করে

gdb> x/4xw $sp

হেক্সাডেসিমাল ( ) তে wস্ট্যাক পয়েন্টারের উপরে (এখানে $sp) মেমরির চারটি শব্দ ( ) মুদ্রণ করতে " xউদ্ধৃতিটি সামান্য প্যারাফ্রেস করা হয়েছে।

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