The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Какой Базовый уровень Filesets необходимы конкретные программы? cypher82 UNIX перспективных И опытных пользователей 4 05-29-2008 09:07 AM
Помощь необходима в отношении с программой dwgi32 Программирования высокого уровня 2 11-19-2007 10:44 AM
Weird дело о ФСБ и VGs mhenryj AIX 4 11-13-2007 04:42 PM
Weird результаты AWK amatheny Shell программирование и сценарии 2 11-01-2007 06:12 PM
Weird Сообщение???? lesstjm UNIX для чайников Вопросы И Ответы 6 01-04-2002 10:01 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 11-14-2007
karthikb23 karthikb23 is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2007
Сообщений: 18
Спасибо

Спасибо, ребята за т ввода.

Ну N1, я думал об аналогичных линий. Принимая это шаг вперед, поскольку J было выделено 15 байт, даже если я входного буфера говорить о 20 (в основном> 15), программа не остановить.

Теперь при THT K указывает на некоторые расположение в / пространство вокруг выделенных на J, почему вышеупомянутые условия не вызвать переполнение, а затем вызвать SEGV?

Shouldn't SEGV происходить, когда моя программа посещений любой память вне выделенных ему пространство? (не говоря уже о силе / недействительные addessses)

Кроме того, я заметил, THT до проведения sprintf на 'K', ее стоимость была в том, что после вывода, а также один раз в строку sprintf. Так может быть, они рассматриваются в качестве действительных адресов, и в рамках программы?

BTW, я пришел с выше сценарий случайно, когда-то экспериментировали. Кроме того, я точно знаю, что я делаю, является незаконным, но perplexes меня, когда она работает!
Old 11-14-2007
Портер porter is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2007
Сообщений: 2965
Цитата:
Первоначально Послано karthikb23 View Post
Shouldn't SEGV происходить, когда моя программа посещений любой память вне выделенных ему пространство? (не говоря уже о силе / недействительные addessses)
Речь идет о деталях реализации, как это строгая, некоторые архитектур может просто вызвать деятельность в виртуальной памяти, и добавить его в свой рабочий набор, в особенности, если операционная система считает, вы просто расширение стека.

Кроме того, разные архитектуры являются более жесткими, чем в отношении других (а) за написание кода районах (б) misaligned доступа.
Old 11-14-2007
DreamWarrior DreamWarrior is offline
Зарегистрированный пользователь
  
 

Регистрация: Oct 2003
Сообщений: 70
Вы пробовали печати содержимого 'J', если она существует? После введения 'J' является то, что является причиной для остановки SEGV то я хотел бы угадать ее содержание, влияющие на результат.

Все настолько сосредоточено на 'K', я до сих пор не видеть никого упоминания 'Я'. В sprintf должны отрицать, что содержание 'Я', указывающая на что и выбрасывают на 'K'. Я подозреваю, что "J" и "Я больше отношения, чем" J "и" K ".

Если бы мне пришлось принимать догадаться, 'J' (если она существует) имеет, в какой-то момент, нуль-терминатор ( '\ 0') в нем, и 'Я' является (в какой-то момент перед SEGV) работает в Содержание 'J'. Это, разумеется, ограничивает количество "мусора" вы можете прочитать так и пряник в unreferenced 'K' и, следовательно, уменьшает возможности для SEGV.

Принять 'J' из картины и sprintf явно работает в области памяти, она не должна. Моя догадаться, хотя это, проходящих sprintf 'я' как вы переполнят щеколда из 'K', так как не существует нуль терминатор в памяти в течение определенного времени или нет недействительными терминаторе до sprintf попадает в сегмент текста и ОС не нравится нарушение данного сегмента.

Я хотел бы проверить мою теорию, но AIX сердечников, независимо от присутствия 'J'.
Old 11-14-2007
karthikb23 karthikb23 is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2007
Сообщений: 18
может быть, но когда я распечатать содержимое J, это было "" (очевидно, так как это манекен).
Но, возможно, могут существовать некоторые мусор в 15 байт выделяется.
Как и у упомянутых, то следует дампа основных оба раза.

Кроме того, как Портер упоминали до операционной системы, когда / сколько он должен быть строгим.
Old 11-15-2007
n1djs n1djs is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2007
Сообщений: 12
А SEGV, по определению, значит, вы пытаетесь записать в сегменте вне памяти, выделяемой для вас. В первом случае, вы не имели хранения выделено только указатели, поэтому первый писать дал вам SEGV. Второй является более сложным для обнаружения ошибки. До тех пор, как вы пишете в любое памяти, выделяемой для вас, вы не получите SEGV. Ваши указатели только произойдет с точки выделяемых на память, в этом случае ваш J [] символьный массив. Напиши там достаточно материала, и вы получите SEGV там, если упасть в конце Вашего выделено памяти. Компилятор И во время библиотеки не имеют ни малейшего представления, если вы хотите, чтобы она указывала на выделенных память, или когда в этом выделяемые памяти нужно указать, с указателями. До тех пор, как вы, указывающих на выделенных памяти, времени выполнения, не будет выдавать SEGV (Вы не за написание выделенных памяти)
Old 11-15-2007
Портер porter is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2007
Сообщений: 2965
Обычно штабеля распространяются на сегмент нарушений, а не выделять огромные стопки к процессу, она ставит охранник страниц ниже, и при поездке за этим он растет стек.
Old 11-16-2007
DreamWarrior DreamWarrior is offline
Зарегистрированный пользователь
  
 

Регистрация: Oct 2003
Сообщений: 70
Цитата:
Первоначально Послано karthikb23 View Post
может быть, но когда я распечатать содержимое J, это было "" (очевидно, так как это манекен).
Но, возможно, могут существовать некоторые мусор в 15 байт выделяется.
Как и у упомянутых, то следует дампа основных оба раза.

Кроме того, как Портер упоминали до операционной системы, когда / сколько он должен быть строгим.
Ты бы сказал, "очевидно", а затем "Очевидно," все другие указатели должны быть установлены в NULL, как хорошо. Пишите NULL должно вызывать SEGV .... Однако, если это "" тогда, что это часть того, почему существование 'J' является остановить вас от SEGV. Поскольку в то время как это sprintf проходящих строку 'я' на свалку его содержания в 'K', она сразу же попадает в NULL терминатор и ограничивает ущерб. Вполне возможно, "ущерб" сделали лежит целиком в пределах выделенного стека и никогда SEGVs. В любом случае, вы clobbering вещи вы не должны.

Кроме того, я не уверен, что SEGV (по определению) всегда объясняется пишет. Существует текста и сегмента данных и я подозреваю, что попытка прочитать текст сегмент также может привести к SEGV в некоторых операционных системах.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 02:19 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0