কমান্ডের ইতিহাস সংরক্ষণ করে আমি কীভাবে জিডিবি তৈরি করতে পারি?


195

আমি কীভাবে সেট আপ করতে পারি gdbযাতে এটি কমান্ডের ইতিহাসটি সংরক্ষণ করে? একটি নতুন gdbসেশন শুরু করার সময় আমি পূর্ববর্তী সেশনের কমান্ডগুলি অ্যাক্সেস করতে তীরচিহ্নগুলি ব্যবহার করতে চাই।


1
দ্রষ্টব্য: .gdbinitফাইলটি আপনার লিনাক্সের চেয়ে অন্যদের দ্বারা রাইটিং-সুরক্ষিত রাখতে হবে।
uriseit

@ আরজিট - আমি মনে করি এটি উবুন্টুর মতো ডিসট্রোসের একটি হারিয়ে যাওয়া কারণ। তারা ডিফল্টরূপে যে কারওর হোম ডিরেক্টরিতে কাউকে অনুমতি দেয়।
jw

@jww .gdbinitঅনুমতিগুলি সঠিকভাবে সেট আপ না করা থাকলে ফাইলটি প্রক্রিয়াজাত হয় না, ডিফল্ট কী এবং সিস্টেমের দ্বারা হোম ডিরেক্টরিতে অন্য কোন সীমাবদ্ধতা ব্যবহৃত হয় তা বিবেচনা করে না।
urzeit

@ urzeit যদি আপনি কোনও .gdbinitফাইল তৈরি করেন এবং এটি ক্ষেত্রে না হয়, তার অর্থ আপনার umaskমত একটি বুদ্ধিমান মান হিসাবে সেট করা নেই 022। তারপরে একটি বহু-ব্যবহারকারী সিস্টেমে আপনার নিজের .gdbinitফাইলের চেয়ে বড় সমস্যা রয়েছে ।
কাজ

উত্তর:


283

সংক্ষিপ্ত উত্তর: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit


দীর্ঘ উত্তর:

কমান্ডের ইতিহাস জিডিবি ম্যানুয়াল, 22.3 কমান্ডের ইতিহাসে আচ্ছাদিত । একটি ফাইল তৈরি করুন $HOME/.gdbinit, এর অনুমতিগুলি এতে পরিবর্তন 0600করুন এবং নিম্নলিখিত সামগ্রীটি যুক্ত করুন:

set history save on

আপনি নিম্নলিখিত দ্বারা সংরক্ষণ করা অতীত কমান্ডের সংখ্যা সেট করতে পারেন। কমান্ডটি "gdb তার ইতিহাসের তালিকায় রাখে এমন কমান্ডের সংখ্যা নির্ধারণ করুন vari আকার সীমাহীন বা যদি GDBHISTSIZE হয় negativeণাত্মক সংখ্যা বা খালি স্ট্রিং হয়, তবে ইতিহাসের তালিকায় জিডিবি কমান্ডের সংখ্যা সীমাহীন "

set history size <size>

সম্পর্কিত কমান্ডটি হ'ল set history remove-duplicates <count>। কমান্ডটি বর্ণনা করা হয়েছে "কমান্ড ইতিহাসের তালিকায় সদৃশ ইতিহাস প্রবেশকারীর অপসারণ নিয়ন্ত্রণ করুন। গণনাটি শূন্য নয়, জিডিবি সর্বশেষ গণনা ইতিহাসের এন্ট্রিগুলিকে ফিরে দেখবে এবং বর্তমান এন্ট্রিটির সদৃশ প্রথম প্রবেশিকা সরিয়ে ফেলবে কমান্ড ইতিহাসের তালিকায় যুক্ত হয়েছে

set history remove-duplicates <count>

ডিফল্টরূপে, জিডিবি বর্তমান ডিরেক্টরিতে ./.gdb_history ফাইলটিতে ইতিহাস সংরক্ষণ করে । আপনি যদি চান যে আপনার কমান্ডের ইতিহাস আপনি যে ডিরেক্টরিটিতে রয়েছেন তার উপর নির্ভর না করে, অন্তর্ভুক্ত করুন:

set history filename ~/.gdb_history

4
সবেমাত্র এটি আমার জন্য খুঁজে পেয়েছি এবং ভেবেছিলাম যে আমি এটি শেয়ার করব।
ফ্রাঙ্ক

3
পরের বারের জন্য, অ-সম্প্রদায়-উইকির মতো স্ব-উত্তরযুক্ত প্রশ্ন তৈরি করা পুরোপুরি বৈধ। :)
গ্রেগ হিউগিল

@ ফ্র্যাঙ্ক কীভাবে আমি টাইপ করি nতারপরে কী কীটি অ্যারো আপ করার জন্য, আমি পূর্ববর্তী সমস্ত কমান্ড পেয়েছি যা দিয়ে শুরু হয় n
সিফ

জিডিবি 8.0.1 এ এটি বিশেষ ফাইল অনুমতি ছাড়াই কাজ করে বলে মনে হচ্ছে।
Ryan1729

7

যদি আপনার এখনও সমস্যা হয় তবে নিশ্চিত করুন যে আপনার ইতিহাসের পরিবেশের পরিবর্তনশীল উপযুক্ত high খনি খালি ছিল, যার ফলে জিডিবির "ইতিহাসের আকার" সেটিংটি 0 এ ডিফল্ট হয়ে গেছে।

যোগ করা হয়েছে

export HISTSIZE=100000000

আমার ~ / .Bashrc এ এবং সমস্ত কিছু ফুলে গেছে

আপনি (জিডিবির অভ্যন্তরে) "ইতিহাস দেখান" এর মাধ্যমে আপনার জিডিবি ইতিহাস সেটিংস পরীক্ষা করতে পারেন:

gdb$ show history
expansion:  History expansion on command input is off.
filename:  The filename in which to record the command history is "/home/xiao/.gdb_history".
save:  Saving of the history record on exit is on.
size:  The size of the command history is 100000000.

দস্তাবেজগুলি থেকে :

ইতিহাসের আকারের আকার
সেট করুন ইতিহাসের আকার
সেট করুন আনলিমিটেড জিডিবি ইতিহাসের তালিকায় রাখে এমন কমান্ডের সংখ্যা সেট করুন। পরিবেশের পরিবর্তনশীল HISTSIZE এর মানতে এই ডিফল্ট বা এই পরিবর্তনশীলটি সেট না করা থাকলে 256 এ। আকারটি যদি সীমাহীন হয় তবে ইতিহাসের তালিকায় জিডিবি রাখে এমন কমান্ডের সংখ্যা সীমাহীন।


আমারও একই সমস্যা ছিল। set history size 100.Gdbinit ফাইলটি স্থাপন করা সত্ত্বেও , HISTSIZE পরিবেশের পরিবর্তনশীল এখনও ইতিহাসের আকারকে শূন্যে সেট করে দেয়। সমস্যাটি হ'ল জিডিবি বুঝতে পারে না যে HISSIZE সীমাহীনতে সেট করা যেতে পারে
ডেভিডডাব্লু

জিডিবি-তে HISSIZE বাগটি ২০১৫ সালের জুন পর্যন্ত স্থির করা হয়েছে, এমনটি নয় যে এই পরিবর্তনটি সম্ভবত আপনার সিস্টেমে উপস্থিত রয়েছে। ইতিমধ্যে, HISTSIZEসেট করা থাকলে এটি অবশ্যই> 0 হতে হবে, বা জিডিবি ইতিহাস অক্ষম করবে।
নাট আর।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.