জিডিবি: "কোনও চিহ্ন সারণী লোড করা হয়নি"


90

জিডিবিতে ব্রেকপয়েন্ট যুক্ত করার চেষ্টা করার সময় আমি এই ত্রুটি বার্তাটি পেয়ে যাচ্ছি।

সংকলনের জন্য আমি এই আদেশগুলি ব্যবহার করেছি:

gcc -g main.c utmpib2.c -o main.o
and:
cc -g main.c utmpib2.c -o main.o
and also:
g++ -g main.c utmpib2.c -o main.o

আমি "-g" পরিবর্তে "-ggdb" চেষ্টা করেছি এবং এখনও আমি ত্রুটি বার্তাটি পাই।

আমি তখন জিডিবি কার্যকর করি:

$gdb

জিডিবিতে:

(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.

ওহ আমি মানে.ইন. আমি এটি আপডেট করেছি। আমি "-ggdb" ব্যবহার করার চেষ্টা করেছি এবং এটি এখনও আমাকে একই সমস্যা দিচ্ছে।
ব্যবহারকারী 99416565

আপনি ঠিক কীভাবে জিসিসি এবং জিডিবি চালাচ্ছেন তা আমাদের জানান। কোনও ত্রুটি এড়াতে কপি-পেস্ট করুন।
পাইওটর প্রস্ম্মো

4
আমি আমার আদেশগুলি আপডেট করেছি। এটা সত্যিই অদ্ভুত। এটি সবেমাত্র কাজ শুরু করে। আমি জানি আমি এর আগে "gdb a.out" ব্যবহার করে জিডিবি অ্যাক্সেস করছিলাম এবং আমি a.out বিদ্যমান বা কিছু নয় এমন একটি ত্রুটি বার্তা পাচ্ছিলাম। তারপরে আমি "এক্সিকিউট-ফাইল" এ স্যুইচ করেছি। এখন আমি a.out দিয়ে চেষ্টা করেছি এবং এটিতে বলা হয়েছে "এই জিডিবিটি" i486-linux-gnu "হিসাবে কনফিগার করা হয়েছিল এবং ব্রেকপয়েন্টগুলি সেট করা যায়।
ব্যবহারকারী 99416565

ওহ দুহ আমি ভুল ফাইলটি নির্দিষ্ট করেছিলাম। আমি নিজের নামে ফাইলের নাম পরিবর্তন না করেই জিডিবি টিউটোরিয়ালটি অনুসরণ করেছি followed
ব্যবহারকারী 99416565

উত্তর:


58

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

(gdb) exec-file test
(gdb) b 2
No symbol table is loaded.  Use the "file" command.
(gdb) file test
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

বা কেবল কমান্ড লাইনে প্রোগ্রামটি পাস করুন।

$ gdb test
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[...]
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

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

141

আপনাকে অতিরিক্ত পরামিতি -g যুক্ত করতে হবে, যা উত্স স্তরের ডিবাগ তথ্য উত্পন্ন করে। এটির মতো দেখাবে:

gcc -g prog.c

এর পরে আপনি সাধারণ উপায়ে জিডিবি ব্যবহার করতে পারেন।


27
আমার ক্ষেত্রে, এই উত্তরটি আমার জন্য সমস্যাটি সমাধান করেছে, তবে স্বীকৃত উত্তরটির কোনও পার্থক্য নেই।
ফ্র্যাঙ্কস্টার

8

আমার একই সমস্যা আছে এবং আমি এই পোস্টটি অনুসরণ করেছি , এটি আমার সমস্যার সমাধান করেছে।

নিম্নলিখিত 2 পদক্ষেপ অনুসরণ করুন:

  1. অপ্টিমাইজেশন স্তরটি নিশ্চিত করুন -O0
  2. -ggdbআপনার প্রোগ্রামটি সংকলন করার সময় পতাকা যুক্ত করুন

শুভকামনা!


0

gccসংকলন মেশিনে এবং gdb পরীক্ষার মেশিনে যখনই পৃথক সংস্করণ রয়েছে , আপনি ডিবাগিনফো ফর্ম্যাট বেমানানতার মুখোমুখি হতে পারেন ।

এটি ঠিক করতে, ডিবাগইনফো ফর্ম্যাটটি ডাউনগ্রেড করার চেষ্টা করুন:

gcc -gdwarf-3 ...
gcc -gdwarf-2 ...
gcc -gstabs ...
gcc -gstabs+ ...
gcc -gcoff ...
gcc -gxcoff ...
gcc -gxcoff+ ...

অথবা মেলে gdbকরার gccআপনি ব্যবহার করছেন।


0

আমি আজ সকালে এই সমস্যাটি পূরণ করেছি কারণ আমি gcc -ggdb -Wall test.c -o testবিবিধ ডিভাইসগুলিতে একই এক্সিকিউটেবল ব্যবহার করেছি: আমার ম্যাক (10.15.2) এ আমার প্রোগ্রামটি সংকলনের পরে আমি gdbআমার ভার্চুয়ালবক্সে উবুন্টুতে (16.04) এক্সিকিউটেবলের সাথে দৌড়েছি ।

ফিক্স: উবুন্টুর অধীনে একই কমান্ডের সাথে পুনরায় কম্পাইল করুন, তবে আপনার ভাল হওয়া উচিত।

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