Stack underflow ошибка печати

An operand stack underflow has occurred. Your RIP or printer has received less data than it expected. This is a tricky error to troubleshoot. Knowing the offending command most likely won’t help.

Solutions

  • This may indicate a communication problem – caused by the driver or an interference from a separate utility. Try printing the document from another system.
  • Try simplifying the document – gradually remove elements until the file prints and then see if the offending element(s) can be recreated or cleaned up.
  • The error can also point to a memory problem.
  • If you encounter the problem with XPress 4.x for Windows: do not use the ‘Rough’ setting in the Print-menu but use ‘Normal’ instead. Or use ordinary linear blends instead of blends created using the ‘cool blends’ xtension.

Я действительно изо всех сил пытаюсь решить стек underflow, который я получаю. Трассировка, которую я получаю во время выполнения:

VerifyError: Error #1024: Stack underflow occurred.

at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

это особенно трудно отлаживать, потому что когда я запускаю в режиме отладки, его не происходит вообще. Это происходит только при компиляции в релиз.

есть ли у кого-нибудь советы по отладке стека Underflow? Есть ли четкое объяснение того, что это означает для Flash?

в случае, если это помогает, эта ошибка происходит, когда я нажимаю кнопку, обработчик которой делает вызов RPC, который использует URLLoader, AsyncToken, а затем вызывает набор экземпляров AsyncResponder, связанных с AsyncToken. С некоторыми серверными журналами, а также некоторыми журналами, взломанными в swf, я знаю, что UrlLoader успешно выполняет и получает crossdomain.xml-файл, правильно его обрабатывает (т. е.: если я его разрушу, я получу ошибку безопасности), а также успешно завершает запрос «load» (сервер отправляет данные.) Кажется, что в этом случае происходит утечка.Полный процесс прослушивания/обработки (как, конечно, подразумевается и обратной трассировкой).

mxmlc используется = из flex_sdk_4.5.0.20967

пример игрока (я пробовал несколько) = 10.2.153.1


обновление: моя конкретная проблема решается… но я оставляю вопрос как есть, так как я хотел бы знать, как обычно отлаживать такую проблему, а не просто получать мои конкретные решение.

в моем коде у меня было следующее определение приложения:

<s:Application height="100%" width="100%"
                              xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               initialize="InitData();">

обратите внимание, что код / был прикреплен к initialize событие.

InitData () и соответствующие определения:

import classes.RpcServerProxy;
public var SP:RpcServerProxy;

public function InitData():void {
    SP = new RpcServerProxy("http://192.168.1.102:1234");
}

когда я переключил вызов InitData (), чтобы быть на onCompletion событие вместо initialize (спасибо J_A_X!), проблема полностью исчезает. То, что, кажется, происходило, было именно этим событием.Полный обработчик событий (onComplete в стеке trace) использовал глобальный объект SP. Что-то в компиляции release (vs debug) должно было повлиять на время запуска инициализации переменной SP. Перемещение обработчика позже в onCompletion событие решило все проблемы.

как сказано выше, я все равно хотел бы знать, какие трюки/инструменты доступны для отладки таких проблем инициализации.


обновление 2:

applicationComplete кажется, даже лучше, чем creationComplete поставить код инициализации приложения. См.эта запись в блоге для некоторого объяснения, и видео (около 4:25) евангелистом Adobe Tech для примера простой инициализации данных «запуск приложения».

9 ответов


Stack underflow в основном означает, что компилятор испортился.

можно использовать SWFWire Инспектор чтобы посмотреть байт-код обработчика событий, если вы хотите точно знать, как он испортился. Вы также можете использовать Отладчик SWFWire чтобы увидеть, какие методы были вызваны, но в этом случае, вы уже знали, где это происходило.

Если вы опубликуете сломанный swf, я могу дать вам больше информации.


Я избавился от этой ошибки, добавив аргумент компилятора:
— omit-trace-операторы=false


Шон прав, что для его отладки вы можете посмотреть на байтовый код, но это не звучало привлекательным для меня.

основываясь на моем опыте и исследованиях, это часто связано с наличием оператора трассировки, который неправильно компилируется в режиме выпуска и генерирует недопустимый байтовый код. Итак, я бы сказал » отладить «его:» ищите места, где вы используете трассировку. Попробуйте прокомментировать их все в оскорбительной функции и посмотреть, исчезнет ли проблема.»

в моем случае, это был оператор трассировки как первая строка блока catch:

catch (e:TypeError) {
    trace(e.getStackTrace()); //This line is the problem
    throw new Error("Unexpected type encountered");
}

Я нашел кого-то еще с этим вопросом здесь.


этот код также приводит к стеку underflow только в режиме выпуска (флаг-debug=false):

true && trace('123');

mxlmc flex sdk версии 4.5.0.20967, flashplayer версии 10.3.181.14 (linux).

проверьте код на наличие подобных выражений.


этот код вызвал у меня проблемы, когда я скомпилировал кандидата на выпуск из flash builder 4.5

public function set configVO( value:PopupConfigVO ):void
        {trace("CHANGING")

разрешено путем вставки пространства между трассировкой и фигурной скобкой

public function set configVO( value:PopupConfigVO ):void
        { trace("CHANGING")

надеюсь, что это помогает.


для людей, ищущих ту же проблему, я только что получил это, вызванное оператором трассировки в случае «по умолчанию» оператора switch. Прокомментировал трассировку, stack underflow разрешен.


интересные… Я получал эту ошибку с SWF, который я вытащил из интернета, графическую демонстрацию на основе Away3D. В то время я запускал это на VM Tamarin, а не фактическое время выполнения Flash/AIR, поэтому мог придерживаться точки останова в строке «verifyFailed(kStackUnderflowError)» и видеть, что происходит.

флаг-Dverbose также помог найти виновника:

typecheck MethodInfo-1480()
  outer-scope = [global]
                       [Object~ Object] {} ()
  0:pop
VERIFY FAILED: Error #1024: Stack underflow occurred.

и глядя на ABC с помощью SWFInvestigator, я нашел это:

var function(Object):void   /* disp_id=0 method_id=1480 nameIndex = 0 */
{
   // local_count=2 max_scope=0 max_stack=0 code_len=2
   // method position=52968 code position=155063
   0      pop               
   1      returnvoid        
}

таким образом, существует очевидная проблема, когда «трассировка» была удалена, но компилятор поместил туда «pop»: я бы не подумал, что это необходимо, поскольку вызов трассировки предположительно должен был быть сделан через «callpropvoid»?

вполне почему это не терпит неудачу на AIR / Flash, я не знаю..

в любом случае: похоже на проблему компилятора ASC i.e возможно, один из компиляторов ActionScript3 имел ошибку с этим-следовательно, обходные пути, которые были до сих пор говорилось.


У меня была точно такая же проблема, но в моем случае причиной проблемы была инструкция trace в месте, где компилятор не ожидал, что он ее найдет, сразу после объявления пакета в начале класса:

package utils 
{

trace ("trace something here");

и именно поэтому компиляция в режиме отладки удалила проблему.


это довольно просто, и это не имеет ничего общего с пробелами до или после скобок, команд трассировки или что-то еще: это просто 1 действительно простая вещь:

НЕ ЦИКЛ ПУСТОЙ!

значение, при разработке, мы все / / иногда комментируем некоторые строки, и когда это приводит к

 for (...) { 
             // skip for now
         }

компилятор получает :

      for(...){}

и что мои хорошие друзья, это то, что компилятору не нравится!

Итак, никаких пустых петель и ты снова в пути…

счастливой охоты,
П.


Японский производитель оргтехники Kyocera выпускает одни из самых качественных печатающих устройств на рынке, которые, в первую очередь, пользуются высоким спросом у бизнеса. А это уже говорит о многом!

На заметку! В отличие от частных покупателей, сильно подверженных рекламе и маркетинговым уловкам, большинство предпринимателей предпочитают вкладывать средства рационально.

Тем не менее, даже самая качественная оргтехника может давать сбои. Особенно, если за ней не следить!

Поэтому сегодня мы рассмотрим наиболее распространенные коды ошибок у популярных принтеров Kyocera FS-1020MFP, FS-1025MFP, FS-1030MFP, FS-1120MFP, FS-1125MFP, FS-1220MFP и прочих моделей, чтобы разобраться, какие неполадки можно устранить своими руками, а в каких случаях необходимо воспользоваться помощью специалистов.

  • Сброс ошибок у принтеров Kyocera своими руками
  • Устранение ошибок у принтеров Kyocera в сервисном центре

Под сбросом ошибок у принтеров Kyocera нужно понимать комплекс мероприятий, которые потенциально может осуществить опытный пользователь, чтобы восстановить работоспособность печатающих устройств без обращения в сервисный центр.

Ошибка №

Причина

Решение проблемы

E-0001

В принтере установлен совместимый картридж или чип расходника был поврежден. Проблема решается несколькими способами:

1. установка оригинального картриджа;

2. замена поврежденного чипа;

3. прошивка принтера – затем в печатающее устройство можно будет установить любой картридж неограниченное количество раз;

4. сброс ошибки – зажмите на несколько секунд кнопки «Режим» и «Сброс».

E-0002

Регион используемого картриджа не соответствует характеристикам принтера. Проблема решается несколькими способами:

1. установка соответствующего региону принтера картриджа;

2. замена чипа;

3. прошивка принтера.

E-0003

Память печатающего устройства заполнена. Распечатайте уже отсканированные документы или сбросьте операцию соответствующей кнопкой.

E-0007

В картридже закончился тонер. Замените картридж на новый оригинальный, совместимый или заправьте расходник.

E-0008

Одна из крышек принтера не закрыта. Захлопните заднюю и переднюю крышки принтера, ощутив характерный щелчок.

E-0009

Лоток с отпечатками переполнен. Извлеките распечатанные листы с бумагой, а затем возобновите печать кнопкой «Старт».

E-0012

Память принтера заполнена. Измените разрешение печати в меньшую сторону – до 600 dpi.

E-0014

Установлена бумага такого формата, который принтер не поддерживает. Замените бумагу листами совместимого формата.

Иногда функционал принтера может быть ограничен на софтверном уровне.

Чтобы расширить диапазон форматов, мы рекомендуем обновить ПО печатающего устройства.

E-0015

1. У принтера отсутствует питание.

2. Сетевой кабель не подключен.

3. На персональном компьютере отсутствует драйвер.

Проверьте целостность сетевого кабеля.

Включите принтер.

При необходимости установите драйвер.

E-0018

Выбранный файл отсутствует в очереди на печать. Сбросьте операцию, нажав на кнопку «Сброс». Затем выберите новый файл и продолжите печать.

E-0019

Формат печати не поддерживается принтером. Сбросьте операцию, нажав на кнопку «Сброс».

J-0511

Бумагу зажевало. Аккуратно извлеките остатки бумаги из корпуса принтера.

PF

Отсутствует бумага во входном лотке. Установите бумагу во входной лоток и возобновите печать, нажав на кнопку «Старт».
Ошибка №

Возможная причина

0030

Неисправна PWB-плата.

0100

Неисправна Flash-память или плата PWB.

0120

Неисправна Flash-память.

0190

Неисправна Flash-память или плата PWB.

0630

Неисправна PWB-плата.

2000

1. Неисправна PWB-плата;

2. неисправен соединительный кабель или нарушена целостность соединения контактов;

3. неисправен привод или его отдельные узлы.

3100

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправен датчик положения;

3. неисправен привод сканера;

4. неисправна PWB-плата.

3300

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправен датчик CIS;

3. неисправна PWB-плата.

3500

Неисправна PWB-плата.

4000

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправен привод;

3. неисправна PWB-плата.

4200

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправна PWB-плата и отдельные компоненты.

6000

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправен термостат;

3. неисправен нагреватель фьюзера;

4. неисправна PWB-плата и отдельные компоненты.

6020

1. Неисправна PWB-плата и отдельные компоненты;

2. выявлен дефект у термистора.

6030

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. выявлен дефект у термистора;

3. неисправен термостат;

4. неисправна PWB-плата и отдельные компоненты.

6400

1. Неисправен соединительный кабель или нарушена целостность соединения контактов;

2. неисправна PWB-плата и отдельные компоненты.

F000

Неисправна PWB-плата и отдельные компоненты.

F020

Неисправна PWB-плата.

F040

Неисправна PWB-плата.

F05D

1. Неисправно программное обеспечение привода;

2. неисправна PWB-плата и отдельные компоненты.

Попытались самостоятельно устранить ошибку на принтере Kyocera, но проблемы с печатью остались нерешенными? Сервисный центр МосТонер – круглосуточный бесплатный выезд мастера в пределах МКАД. Вы платите только за результат!

Как отладить ошибку переполнения стека во время выполнения?

Я действительно изо всех сил пытаюсь решить возникающее у меня переполнение стека. Во время выполнения я получаю следующую трассировку:

Это особенно сложно отладить, потому что, когда я запускаю в режиме отладки, этого вообще не происходит. Это происходит только при компиляции в виде релиза.

Есть ли у кого-нибудь советы по отладке Stack Underflow? Есть ли четкое объяснение того, что это значит для Flash?

В случае, если это помогает, эта ошибка возникает, когда я нажимаю кнопку, обработчик которой выполняет вызов RPC, который использует URLLoader, AsyncToken, а затем вызывает набор экземпляров AsyncResponder, связанных с AsyncToken. С некоторым журналированием на стороне сервера, а также с некоторыми журналами, взломанными в swf, я знаю, что UrlLoader успешно выполняет и GET’ing файл crossdomain.xml, правильно его обрабатывает (то есть: если я его разрушу, я получаю безопасность error), а также успешно выполняет запрос «загрузки» (сервер отправляет данные). Похоже, что недостаточное заполнение происходит в процессе прослушивания / обработки Event.COMPLETE (что, конечно, также подразумевается трассировкой).

mxmlc used = from flex_sdk_4.5.0.20967

Пример плеера (несколько пробовал) = 10.2.153.1

ОБНОВЛЕНИЕ : моя конкретная проблема решена . но я оставляю вопрос как есть, поскольку я хотел бы знать, как в целом отлаживать такую ​​проблему, а не просто получать свое конкретное решение.

В моем коде у меня было следующее определение приложения:

Обратите внимание, что код прикреплен к initialize событию.

InitData () и соответствующие определения:

Когда я переключил вызов InitData () на onCompletion событие вместо initialize (спасибо J_A_X!), Проблема полностью исчезла. Похоже, что произошло то, что обработчик событий Event.COMPLETE (onComplete в трассировке стека) использовал глобальный объект SP. Что-то в компиляции выпуска (по сравнению с отладкой) должно было влиять на время запуска инициализации переменной SP. Перенос обработчика позже к onCompletion событию решил все проблемы.

Как было сказано выше, я все же хотел бы знать, какие уловки / инструменты доступны для отладки подобных проблем инициализации.

ОБНОВЛЕНИЕ 2:

applicationComplete кажется даже лучшим мероприятием, чем creationComplete ставить код инициализации приложения. См. Некоторые пояснения в этой записи в блоге и в этом видео (около 4:25) от Adobe Tech Evangelist для примера простой инициализации данных «запуск приложения».

Источник

Как отладить ошибку underflow стека времени выполнения?

Я действительно изо всех сил пытаюсь решить стек underflow, который я получаю. Трассировка, которую я получаю во время выполнения:

это особенно трудно отлаживать, потому что когда я запускаю в режиме отладки, его не происходит вообще. Это происходит только при компиляции в релиз.

есть ли у кого-нибудь советы по отладке стека Underflow? Есть ли четкое объяснение того, что это означает для Flash?

в случае, если это помогает, эта ошибка происходит, когда я нажимаю кнопку, обработчик которой делает вызов RPC, который использует URLLoader, AsyncToken, а затем вызывает набор экземпляров AsyncResponder, связанных с AsyncToken. С некоторыми серверными журналами, а также некоторыми журналами, взломанными в swf, я знаю, что UrlLoader успешно выполняет и получает crossdomain.xml-файл, правильно его обрабатывает (т. е.: если я его разрушу, я получу ошибку безопасности), а также успешно завершает запрос «load» (сервер отправляет данные.) Кажется, что в этом случае происходит утечка.Полный процесс прослушивания/обработки (как, конечно, подразумевается и обратной трассировкой).

mxmlc используется = из flex_sdk_4.5.0.20967

пример игрока (я пробовал несколько) = 10.2.153.1

обновление: моя конкретная проблема решается. но я оставляю вопрос как есть, так как я хотел бы знать, как обычно отлаживать такую проблему, а не просто получать мои конкретные решение.

в моем коде у меня было следующее определение приложения:

обратите внимание, что код / был прикреплен к initialize событие.

InitData () и соответствующие определения:

когда я переключил вызов InitData (), чтобы быть на onCompletion событие вместо initialize (спасибо J_A_X!), проблема полностью исчезает. То, что, кажется, происходило, было именно этим событием.Полный обработчик событий (onComplete в стеке trace) использовал глобальный объект SP. Что-то в компиляции release (vs debug) должно было повлиять на время запуска инициализации переменной SP. Перемещение обработчика позже в onCompletion событие решило все проблемы.

как сказано выше, я все равно хотел бы знать, какие трюки/инструменты доступны для отладки таких проблем инициализации.

обновление 2:

applicationComplete кажется, даже лучше, чем creationComplete поставить код инициализации приложения. См.эта запись в блоге для некоторого объяснения, и видео (около 4:25) евангелистом Adobe Tech для примера простой инициализации данных «запуск приложения».

9 ответов

Stack underflow в основном означает, что компилятор испортился.

можно использовать SWFWire Инспектор чтобы посмотреть байт-код обработчика событий, если вы хотите точно знать, как он испортился. Вы также можете использовать Отладчик SWFWire чтобы увидеть, какие методы были вызваны, но в этом случае, вы уже знали, где это происходило.

Если вы опубликуете сломанный swf, я могу дать вам больше информации.

Я избавился от этой ошибки, добавив аргумент компилятора:
— omit-trace-операторы=false

Шон прав, что для его отладки вы можете посмотреть на байтовый код, но это не звучало привлекательным для меня.

основываясь на моем опыте и исследованиях, это часто связано с наличием оператора трассировки, который неправильно компилируется в режиме выпуска и генерирует недопустимый байтовый код. Итак, я бы сказал » отладить «его:» ищите места, где вы используете трассировку. Попробуйте прокомментировать их все в оскорбительной функции и посмотреть, исчезнет ли проблема.»

в моем случае, это был оператор трассировки как первая строка блока catch:

Я нашел кого-то еще с этим вопросом здесь.

этот код также приводит к стеку underflow только в режиме выпуска (флаг-debug=false):

mxlmc flex sdk версии 4.5.0.20967, flashplayer версии 10.3.181.14 (linux).

проверьте код на наличие подобных выражений.

этот код вызвал у меня проблемы, когда я скомпилировал кандидата на выпуск из flash builder 4.5

разрешено путем вставки пространства между трассировкой и фигурной скобкой

надеюсь, что это помогает.

для людей, ищущих ту же проблему, я только что получил это, вызванное оператором трассировки в случае «по умолчанию» оператора switch. Прокомментировал трассировку, stack underflow разрешен.

интересные. Я получал эту ошибку с SWF, который я вытащил из интернета, графическую демонстрацию на основе Away3D. В то время я запускал это на VM Tamarin, а не фактическое время выполнения Flash/AIR, поэтому мог придерживаться точки останова в строке «verifyFailed(kStackUnderflowError)» и видеть, что происходит.

флаг-Dverbose также помог найти виновника:

и глядя на ABC с помощью SWFInvestigator, я нашел это:

таким образом, существует очевидная проблема, когда «трассировка» была удалена, но компилятор поместил туда «pop»: я бы не подумал, что это необходимо, поскольку вызов трассировки предположительно должен был быть сделан через «callpropvoid»?

вполне почему это не терпит неудачу на AIR / Flash, я не знаю..

в любом случае: похоже на проблему компилятора ASC i.e возможно, один из компиляторов ActionScript3 имел ошибку с этим-следовательно, обходные пути, которые были до сих пор говорилось.

У меня была точно такая же проблема, но в моем случае причиной проблемы была инструкция trace в месте, где компилятор не ожидал, что он ее найдет, сразу после объявления пакета в начале класса:

и именно поэтому компиляция в режиме отладки удалила проблему.

это довольно просто, и это не имеет ничего общего с пробелами до или после скобок, команд трассировки или что-то еще: это просто 1 действительно простая вещь:

значение, при разработке, мы все / / иногда комментируем некоторые строки, и когда это приводит к

и что мои хорошие друзья, это то, что компилятору не нравится!

Итак, никаких пустых петель и ты снова в пути.

Источник

ERROR NAME; stackunderflow COMMAND; pop OPERAND STACK;

I get the message ERROR NAME; stackunderflow COMMAND; pop OPERAND STACK; when I try to print from Firefox or anything that has a picture as part of the file. I am running saucy on an AMD64 system. so far I have tried deleting the printer and setting it up again. No change

Question information

Related bugs

Related FAQ:

What is the output of:

lsb_release -a; uname -a; apt-cache policy firefox

$ lsb_release -a; uname -a; apt-cache policy firefox
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy
Linux Mike 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
firefox:
Installed: 27.0.1+ build1- 0ubuntu0. 13.10.1
Candidate: 27.0.1+ build1- 0ubuntu0. 13.10.1
Version table:
*** 27.0.1+ build1- 0ubuntu0. 13.10.1 0
500 http:// us.archive. ubuntu. com/ubuntu/ saucy-updates/main amd64 Packages
500 http:// security. ubuntu. com/ubuntu/ saucy-security/main amd64 Packages
100 /var/lib/ dpkg/status
24. 0+build1- 0ubuntu1 0
500 http:// us.archive. ubuntu. com/ubuntu/ saucy/main amd64 Packages
mike@Mike:

BTW the printer is a Brother MFC-7840W . I borrowed an HP 8100 and used the HP driver. It did not have the same problem printing.

Did you install the Brother printer drivers from the Brother site. They make debs for their products.

Источник

ERROR NAME; stackunderflow COMMAND; pop OPERAND STACK;

I get the message ERROR NAME; stackunderflow COMMAND; pop OPERAND STACK; when I try to print from Firefox or anything that has a picture as part of the file. I am running saucy on an AMD64 system. so far I have tried deleting the printer and setting it up again. No change

Question information

Related bugs

Related FAQ:

What is the output of:

lsb_release -a; uname -a; apt-cache policy firefox

$ lsb_release -a; uname -a; apt-cache policy firefox
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy
Linux Mike 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
firefox:
Installed: 27.0.1+ build1- 0ubuntu0. 13.10.1
Candidate: 27.0.1+ build1- 0ubuntu0. 13.10.1
Version table:
*** 27.0.1+ build1- 0ubuntu0. 13.10.1 0
500 http:// us.archive. ubuntu. com/ubuntu/ saucy-updates/main amd64 Packages
500 http:// security. ubuntu. com/ubuntu/ saucy-security/main amd64 Packages
100 /var/lib/ dpkg/status
24. 0+build1- 0ubuntu1 0
500 http:// us.archive. ubuntu. com/ubuntu/ saucy/main amd64 Packages
mike@Mike:

BTW the printer is a Brother MFC-7840W . I borrowed an HP 8100 and used the HP driver. It did not have the same problem printing.

Did you install the Brother printer drivers from the Brother site. They make debs for their products.

Источник

Проблемы с печатью больших файлов

Все новые темы

Автор
DeniTornado
Старожил форума

Зарегистрирован: 22.10.2007
Пользователь #: 62,692
Сообщения: 2473


Голоса: 2

Добавлено: Ср 13 Апр, 2016 15:40 Заголовок сообщения:
Вернуться к началу

Зарегистрируйтесь и реклама исчезнет!

DeniTornado
Старожил форума

Зарегистрирован: 22.10.2007
Пользователь #: 62,692
Сообщения: 2473


Голоса: 2

Добавлено: Пт 20 Май, 2016 13:02 Заголовок сообщения:
Вернуться к началу

Paranoya
Почетный житель

Зарегистрирован: 14.12.2006
Пользователь #: 48,281
Сообщения: 5249


Голоса: 45

Добавлено: Пт 20 Май, 2016 13:55 Заголовок сообщения:
_________________
Он был расстроенным трупом и потратил две минуты впустую
Вернуться к началу

DeniTornado
Старожил форума

Зарегистрирован: 22.10.2007
Пользователь #: 62,692
Сообщения: 2473


Голоса: 2

Добавлено: Пт 20 Май, 2016 14:05 Заголовок сообщения:
Вернуться к началу

Paranoya
Почетный житель

Зарегистрирован: 14.12.2006
Пользователь #: 48,281
Сообщения: 5249


Голоса: 45

Добавлено: Пт 20 Май, 2016 15:43 Заголовок сообщения:
_________________
Он был расстроенным трупом и потратил две минуты впустую
Вернуться к началу

mrhron
Участник форума

Зарегистрирован: 09.11.2010
Пользователь #: 92,299
Сообщения: 391


Голоса: 8

Добавлено: Пт 20 Май, 2016 15:49 Заголовок сообщения:
Вернуться к началу

DeniTornado
Старожил форума

Зарегистрирован: 22.10.2007
Пользователь #: 62,692
Сообщения: 2473


Голоса: 2

Добавлено: Пн 23 Май, 2016 11:57 Заголовок сообщения:
Вернуться к началу

sergeykp
Участник форума

Зарегистрирован: 13.03.2006
Пользователь #: 33,871
Сообщения: 480
Откуда: Томск

Голоса: 4

Добавлено: Чт 09 Июн, 2016 11:41 Заголовок сообщения:
Вернуться к началу

DeniTornado
Старожил форума

Зарегистрирован: 22.10.2007
Пользователь #: 62,692
Сообщения: 2473


Голоса: 2

Добавлено: Пн 27 Июн, 2016 16:26 Заголовок сообщения:
Вернуться к началу

Paranoya
Почетный житель

Зарегистрирован: 14.12.2006
Пользователь #: 48,281
Сообщения: 5249

Источник

Adblock
detector

Я действительно изо всех сил пытаюсь решить стек underflow, который я получаю. Трассировка, которую я получаю во время выполнения:

VerifyError: Error #1024: Stack underflow occurred.

at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

это особенно трудно отлаживать, потому что когда я запускаю в режиме отладки, его не происходит вообще. Это происходит только при компиляции в релиз.

есть ли у кого-нибудь советы по отладке стека Underflow? Есть ли четкое объяснение того, что это означает для Flash?

в случае, если это помогает, эта ошибка происходит, когда я нажимаю кнопку, обработчик которой делает вызов RPC, который использует URLLoader, AsyncToken, а затем вызывает набор экземпляров AsyncResponder, связанных с AsyncToken. С некоторыми серверными журналами, а также некоторыми журналами, взломанными в swf, я знаю, что UrlLoader успешно выполняет и получает crossdomain.xml-файл, правильно его обрабатывает (т. е.: если я его разрушу, я получу ошибку безопасности), а также успешно завершает запрос «load» (сервер отправляет данные.) Кажется, что в этом случае происходит утечка.Полный процесс прослушивания/обработки (как, конечно, подразумевается и обратной трассировкой).

mxmlc используется = из flex_sdk_4.5.0.20967

пример игрока (я пробовал несколько) = 10.2.153.1


обновление: моя конкретная проблема решается… но я оставляю вопрос как есть, так как я хотел бы знать, как обычно отлаживать такую проблему, а не просто получать мои конкретные решение.

в моем коде у меня было следующее определение приложения:

<s:Application height="100%" width="100%"
                              xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               initialize="InitData();">

обратите внимание, что код / был прикреплен к initialize событие.

InitData () и соответствующие определения:

import classes.RpcServerProxy;
public var SP:RpcServerProxy;

public function InitData():void {
    SP = new RpcServerProxy("http://192.168.1.102:1234");
}

когда я переключил вызов InitData (), чтобы быть на onCompletion событие вместо initialize (спасибо J_A_X!), проблема полностью исчезает. То, что, кажется, происходило, было именно этим событием.Полный обработчик событий (onComplete в стеке trace) использовал глобальный объект SP. Что-то в компиляции release (vs debug) должно было повлиять на время запуска инициализации переменной SP. Перемещение обработчика позже в onCompletion событие решило все проблемы.

как сказано выше, я все равно хотел бы знать, какие трюки/инструменты доступны для отладки таких проблем инициализации.


обновление 2:

applicationComplete кажется, даже лучше, чем creationComplete поставить код инициализации приложения. См.эта запись в блоге для некоторого объяснения, и видео (около 4:25) евангелистом Adobe Tech для примера простой инициализации данных «запуск приложения».

9 ответов


Stack underflow в основном означает, что компилятор испортился.

можно использовать SWFWire Инспектор чтобы посмотреть байт-код обработчика событий, если вы хотите точно знать, как он испортился. Вы также можете использовать Отладчик SWFWire чтобы увидеть, какие методы были вызваны, но в этом случае, вы уже знали, где это происходило.

Если вы опубликуете сломанный swf, я могу дать вам больше информации.


Я избавился от этой ошибки, добавив аргумент компилятора:
— omit-trace-операторы=false


Шон прав, что для его отладки вы можете посмотреть на байтовый код, но это не звучало привлекательным для меня.

основываясь на моем опыте и исследованиях, это часто связано с наличием оператора трассировки, который неправильно компилируется в режиме выпуска и генерирует недопустимый байтовый код. Итак, я бы сказал » отладить «его:» ищите места, где вы используете трассировку. Попробуйте прокомментировать их все в оскорбительной функции и посмотреть, исчезнет ли проблема.»

в моем случае, это был оператор трассировки как первая строка блока catch:

catch (e:TypeError) {
    trace(e.getStackTrace()); //This line is the problem
    throw new Error("Unexpected type encountered");
}

Я нашел кого-то еще с этим вопросом здесь.


этот код также приводит к стеку underflow только в режиме выпуска (флаг-debug=false):

true && trace('123');

mxlmc flex sdk версии 4.5.0.20967, flashplayer версии 10.3.181.14 (linux).

проверьте код на наличие подобных выражений.


этот код вызвал у меня проблемы, когда я скомпилировал кандидата на выпуск из flash builder 4.5

public function set configVO( value:PopupConfigVO ):void
        {trace("CHANGING")

разрешено путем вставки пространства между трассировкой и фигурной скобкой

public function set configVO( value:PopupConfigVO ):void
        { trace("CHANGING")

надеюсь, что это помогает.


для людей, ищущих ту же проблему, я только что получил это, вызванное оператором трассировки в случае «по умолчанию» оператора switch. Прокомментировал трассировку, stack underflow разрешен.


интересные… Я получал эту ошибку с SWF, который я вытащил из интернета, графическую демонстрацию на основе Away3D. В то время я запускал это на VM Tamarin, а не фактическое время выполнения Flash/AIR, поэтому мог придерживаться точки останова в строке «verifyFailed(kStackUnderflowError)» и видеть, что происходит.

флаг-Dverbose также помог найти виновника:

typecheck MethodInfo-1480()
  outer-scope = [global]
                       [Object~ Object] {} ()
  0:pop
VERIFY FAILED: Error #1024: Stack underflow occurred.

и глядя на ABC с помощью SWFInvestigator, я нашел это:

var function(Object):void   /* disp_id=0 method_id=1480 nameIndex = 0 */
{
   // local_count=2 max_scope=0 max_stack=0 code_len=2
   // method position=52968 code position=155063
   0      pop               
   1      returnvoid        
}

таким образом, существует очевидная проблема, когда «трассировка» была удалена, но компилятор поместил туда «pop»: я бы не подумал, что это необходимо, поскольку вызов трассировки предположительно должен был быть сделан через «callpropvoid»?

вполне почему это не терпит неудачу на AIR / Flash, я не знаю..

в любом случае: похоже на проблему компилятора ASC i.e возможно, один из компиляторов ActionScript3 имел ошибку с этим-следовательно, обходные пути, которые были до сих пор говорилось.


У меня была точно такая же проблема, но в моем случае причиной проблемы была инструкция trace в месте, где компилятор не ожидал, что он ее найдет, сразу после объявления пакета в начале класса:

package utils 
{

trace ("trace something here");

и именно поэтому компиляция в режиме отладки удалила проблему.


это довольно просто, и это не имеет ничего общего с пробелами до или после скобок, команд трассировки или что-то еще: это просто 1 действительно простая вещь:

НЕ ЦИКЛ ПУСТОЙ!

значение, при разработке, мы все / / иногда комментируем некоторые строки, и когда это приводит к

 for (...) { 
             // skip for now
         }

компилятор получает :

      for(...){}

и что мои хорошие друзья, это то, что компилятору не нравится!

Итак, никаких пустых петель и ты снова в пути…

счастливой охоты,
П.


Attachments (Terms of Use)

output of troubleshoot


(418.21 KB,
text/plain)

2012-09-06 15:13 UTC,

John Dennis

no flags Details

PDF document which fails with stackunderflow


(127.58 KB,
application/pdf)

2013-06-10 15:19 UTC,

John Dennis

no flags Details

CUPS job file


(133.08 KB,
text/plain)

2013-06-10 17:38 UTC,

Michael Eager

no flags Details

Output from pdftops (which invokes pstops itself)


(797.05 KB,
application/octet-stream)

2013-06-11 11:00 UTC,

Tim Waugh

no flags Details

Output from pdf2ps + pstops


(462.95 KB,
application/octet-stream)

2013-06-11 11:02 UTC,

Tim Waugh

no flags Details

/etc/cups/ppd/MFC-9840CDW.ppd


(26.24 KB,
text/plain)

2013-06-12 18:34 UTC,

John Dennis

no flags Details

failed.ps


(797.08 KB,
application/octet-stream)

2013-06-14 09:05 UTC,

Tim Waugh

no flags Details

failed.ps with all PPD fragments deleted.


(794.78 KB,
application/postscript)

2013-06-14 16:14 UTC,

Alex Cherepanov

no flags Details

this postscript files fails with stackunderflow


(600.69 KB,
text/plain)

2013-06-14 16:37 UTC,

John Dennis

no flags Details

Correctly printing one pg


(511.35 KB,
application/postscript)

2013-06-14 17:36 UTC,

Michael Eager

no flags Details

One page file which gets underflow


(362.99 KB,
application/postscript)

2013-06-14 17:42 UTC,

Michael Eager

no flags Details

jrd-1.ps with the image removed.


(341.09 KB,
application/postscript)

2013-06-14 18:24 UTC,

Alex Cherepanov

no flags Details

jrd-1-image.ps


(22.15 KB,
application/postscript)

2013-06-14 18:56 UTC,

Alex Cherepanov

no flags Details

Change pop operations to cleartomark


(22.28 KB,
application/postscript)

2013-06-14 19:34 UTC,

Alex Cherepanov

no flags Details

No assumptions about the stack.


(22.19 KB,
application/postscript)

2013-06-14 20:09 UTC,

Alex Cherepanov

no flags Details

jrd-1-image4.ps


(21.85 KB,
application/postscript)

2013-06-14 20:34 UTC,

Alex Cherepanov

no flags Details

jrd-1-image5.ps


(22.40 KB,
application/postscript)

2013-06-14 21:07 UTC,

Alex Cherepanov

no flags Details

jrd-1-image6.ps


(22.43 KB,
application/postscript)

2013-06-15 12:23 UTC,

Alex Cherepanov

no flags Details

jrd-1-image7.ps


(22.49 KB,
application/postscript)

2013-06-15 15:06 UTC,

Alex Cherepanov

no flags Details

JPG file reproducing the issue


(105.44 KB,
image/jpeg)

2019-10-10 16:44 UTC,

Nils Philippsen

no flags Details

Intermediate PDF, as per comment #11


(106.72 KB,
application/pdf)

2019-10-10 16:48 UTC,

Nils Philippsen

no flags Details

View All

Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.

User avatar

moze229

Level 3
Level 3
Posts: 129
Joined: Fri Jul 17, 2015 3:53 pm

Stack underflow when printing graphics

Hello,

I have a Brother HL-5250DN laser printer. I can print text documents all day long with no problems. When I try and print an article online (print directly from the browser) for my son’s homework I get a stack underflow. It’s listed like this on the page that comes from the printer.

ERROR NAME;
stackunderflow
COMMAND;
pop
OPERAND STACK;

This only happens when I print something with graphics. (A webpage, for example.) Does anyone have any ideas where I might start troubleshooting this? I’m not doing anything off the wall. Print is set at 600 dpi. The printer is capable of printing on both sides of a page, but I’m only doing conventional one page per piece of paper. Could it be the browser? I’m using FireFox. Thanks in advance.

Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.

Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.

deepakdeshp

Level 20
Level 20
Posts: 12077
Joined: Sun Aug 09, 2015 10:00 am

Re: Stack underflow when printing graphics

Post

by deepakdeshp »

A workaround you can try is save the page and print saved page.

If I have helped you solve a problem, please add [SOLVED] to your first post title, it helps other users looking for help.
Regards,
Deepak

Mint 21.1 Cinnamon 64 bit with AMD A6 / 8GB
Mint 21.1 Cinnamon AMD Ryzen3500U/8gb

deepakdeshp

Level 20
Level 20
Posts: 12077
Joined: Sun Aug 09, 2015 10:00 am

Re: Stack underflow when printing graphics

Post

by deepakdeshp »

Or take a screenshot and print it.

If I have helped you solve a problem, please add [SOLVED] to your first post title, it helps other users looking for help.
Regards,
Deepak

Mint 21.1 Cinnamon 64 bit with AMD A6 / 8GB
Mint 21.1 Cinnamon AMD Ryzen3500U/8gb

Понравилась статья? Поделить с друзьями:
  • Stack overflow это ошибка
  • Srs ошибка хонда цивик
  • Srvcli dll ошибка как исправить
  • Stack overflow ошибка java
  • Stable diffusion ошибка