2013-10-27 5 views
1

Перед тем как объяснить свою проблему:
Моя ОС - Ubuntu 12.04 LTS 32бит с 4 ГБ оперативной памяти.
My IDE Code :: Blocks 12.11 (У меня была такая же проблема с 10.05)
Я использую компилятор GNU GCC с флагом -g и -std = C++ 0x.Код :: Ошибка блокировки блоков

При попытке отладить эту программу:

using namespace std; 

#include<iostream> 

int main(){ 

int n=10; 

for(int i=1;i<=n;i++){ 
    int ax=i; 
    while(ax) ax--; 
    cout<<i; 
} 


return 0; 
} 

я не могу получить что-нибудь случиться, если бы я попробовать «Run, чтобы курсор» команду или если я пытаюсь использовать контрольные точки. Они просто пропущены, и моя программа заканчивается.

Это то, что я получаю в журнале отладчика:

здания для обеспечения источников являются уточненный
Выбор цели:
Release
Добавление источника реж:/главная/classius/CodeBlocks/Dr/
Добавление источника реж:/главная/classius/CodeBlocks/Dr/
Добавление файла:/главная/classius/CodeBlocks/Dr/bin/Release/Dr
Изменение каталога для:/главная/classius/CodeBlocks/Д/,
Установить переменную: LD_LIBRARY_PATH = .:
Запуск отладчика:/USR/бен/GDB -nx -fullname -quiet -args/дома/classius/CodeBlocks/Dr/bin/Release/Dr
сделано
регистрации нового типа : wxString
Зарегистрирован новый тип: STL Строка Registered новый тип: STL Vector
Установка точек прерывания
Чтение символов из отладочных /home/classius/CodeBlocks/Dr/bin/Release/Dr...(no символов найдено). ..сделанный.
Имя и версия отладчика: GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Таблица символов не загружена. Используйте команду «файл».
Временная контрольная точка 2 ("/home/classius/CodeBlocks/Dr/main.cpp:10) в ожидании.
[Низший 1 (процесс 13381) нормально завершился]
Debugger закончил со статусом 0

Если кто-то хочет предлагая решение, которое подразумевает использование терминала, пожалуйста, сделайте это в самых нулевых условиях, которые вы можете найти!
PS: Как добавить разделительные линии при переполнении стека при задании вопроса? (исправлено-спасибо!)

+0

Чтобы добавить линии разрыва, добавьте 2 пробела в конец строки. –

+0

кажется, что он действительно не генерировал debuginfo. можете ли вы использовать команду «файл», чтобы проверить свой выходной двоичный файл? – tristan

+0

@tristan Как я могу добавить команду 'file' (пожалуйста, держите ее noob-ориентированной!) – classius

ответ

0

Чтение символов из /home/classius/CodeBlocks/Dr/bin/Release/Dr...(no найдены отлаженные символы) ... сделано.

Это означает, что во время компиляции у вас не было опции -g.

UPDATE:

file /home/classius/CodeBlocks/Dr/bin/Release/Dr 

/home/classius/CodeBlocks/Dr/bin/Release/Dr: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x7da8c5cff4af5082d82eecc3ede59a5920b253a0, stripped 

Так что это 'раздели', что означает опцию -g на самом деле не используется. Вы можете проверить свою конфигурацию компилятора или попытаться создать версию Debug?

+0

На самом деле, у меня есть опция -g в компиляторе и debbuger – classius

+0

, но gdb говорит, что у нее нет отладочного символа. Пожалуйста, проверьте, как он скомпилирован – tristan

+0

Как мне это сделать? – classius

Смежные вопросы