Тут хитрый контекст: я почти не контролирую сборку кода. Программа пишется для Android на Qt.
Более того: ошибка не воспроизводится на моём оборудовании.
Плей Маркет сообщает мне вот что:
backtrace:
 
  #00  pc 000000000001d75e  /system/lib/libc.so (abort+58)
 
  #01  pc 000000000001d9c7  /system/lib/libc.so (__assert2+22)
 
  #02  pc 0000000000016149  /data/app/org.asciigames.fillfield--qxeEjn8vGLqekL2bnvZTg==/lib/arm/libFillField.so (Game::makeMove(int, int)+256)
 
  #03  pc 0000000000017d9f  /data/app/org.asciigames.fillfield--qxeEjn8vGLqekL2bnvZTg==/lib/arm/libFillField.so (ViewGame::tapProcessing(int, int, int)+346)
 
  #04  pc 0000000000126ad7  /data/app/org.asciigames.fillfield--qxeEjn8vGLqekL2bnvZTg==/lib/arm/libQt5Widgets.so (QWidget::event(QEvent*)+322)
А вот кусочки важного кода:
1) tapProcessing(int, int, int)
if (x_field < 0 || x_field > 7)	return;
if (y_field < 0 || y_field > 7)	return;
_game->makeMove(x_field, y_field);
2) makeMove(int, int)
assert(x >= 0 && x <= 7 && y >= 0 && y <= 7);
Да, assert стоит первой же строкой и я ума не могу приложить при каких обстоятельствах он даже теоретически может сработать.
Как вообще пользователям попал код с ассертами? Знамо как: сначала я провтыкал их отключить, а теперь вот оказалось что не зря я его впихнул.
«Методом тыка» я ничего проверить не могу. У меня проблема не воспроизводится, с пользователями я пообщаться тоже не могу. Так что решать нужно лишь созерцая код.





