LINUX.ORG.RU
ФорумTalks

Если прога падает, кому фиксить

 сишка


0

3

Допустим, ваша контора работает с другой конторой, поставщиком некой железки. И есть некая утилита, которая с железкой коммуницирует. Но утилита предоставляется производителем железки только под виндоус, и они также предоставляют исходники.

И вот, ваш коллега пересобрал исходники для Linux и ARM64, и эта версия проги падает с сегфолтом.

Кто по-вашему должен дебажить и исправлять падение: ваш коллега или разработчик железки?

★★★★★

Если производитель предоставляет софт только доя виндоуз/х86, то с линуксом/аарч64 вы, очевидно, сами по себе.

Stil ★★★★★
()

В каком-нибудь договоре или лицензии это всё написано. Скорее всего там написано что поддерживается только Windows и вы сами по себе.

Gary ★★★★★
()
Ответ на: комментарий от Stil

однако, сегфолт обычно указывает на баг в софте, поэтому если вы дадите внятную информацию о проблеме (или патчи), то возможно производитель починит сам / примет патчи.

Stil ★★★★★
()

Ну тут ты не с той стороны вопрос ставишь.

Во-первых, что за контора, а точнее какая у нее сфера деятельности? Связано ли это с гос-сектором тем или иным образом?

Идеальный путь → служебка вышестоящему руководству с явным подтверждением того, что ее приняли, в которой описание проблем, почему в текущем виде нельзя запустить софтину, и просьба порешать вопрос. Можно указать варианты решения, но лучше забить, и пусть спрашивают разрабов.

Путь, когда ты сам че-то взял и перекомпилял… Ну тут тоже два варианта:

  1. Причем здесь тогда разработчики софтины?
  • Они представляют ее только под винду, и под нее же гарантируют работоспособность. В этом случае ты можешь обратиться в техподдержку и потребовать что-то сделать/починить/посоветовать (если у вас есть договор или вы купили у них софт).
  • Если ты собрал все это сам подо что-то другое — ну и что? Сам собрал, сам возись. Работоспособность в таком исполнении разработчиками не закладывалась и не гарантировалась, а значит и вопросов к ним не может быть. Только если по доброй воли они тебе могут подсказать, но это потом к делу не пришьешь.
  1. Если несмотря на все это ты все-таки сам собрал что-то под что-то, не заложенное разработчиками, то это подпадает под использование софта/железки в разрез с техническими требованиями, что автоматом снимает с разработчиков ответственность.
  • в случае какого-то факапа, когда из-за кривого софта разнесет половину оборудования и погибнут люди (ну я утрирую, но суть ясна — любой факап), выноват будешь ты, т.к. именно ты запустил это все и ты же что-то там куда-то собирал

Поэтому еще раз: правильный и единственный путь — дергать верхи и просить разрабов железа/софта решать вопрос, без всякой отсебятины.

Если же ты готов нести риски набутыливания, то можешь и сам. Но тебе никто ничего не должен.

Zhbert ★★★★★
()
Ответ на: комментарий от ya-betmen

Чойта? А если они захотят под ZX-Spectrum перекомпилить? А если вприясдку с ней плясать и чтоб она в страпоне действовала?

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 3)
Ответ на: комментарий от ya-betmen

Разработчик им ничего не должен. Он поддерживает только x86 Венду. А сделать так, чтобы работал везде, можно только hello world. Затраты на портирование и поддержу совместимости выше затрат на работку. Если вы берёте наш исходник и правите там одну букву, это уже не наш исходник, а ваш.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 4)
Ответ на: комментарий от lenin386

В моем сообщении 3 предложения. Самое длинное, среднее - основное. Как ты смог его упустить при прочтении?

ya-betmen ★★★★★
()

Вот так просто взял и пересобрал?

greenman ★★★★★
()
Ответ на: комментарий от Stil

однако, сегфолт обычно указывает на баг в софте

Вот в том-то и дело, что это похоже на тот самый сишный/плюсовый случай, когда ты как бы наступил в г, а тебя пытаются убедить, что это не г, и вообще ты сам обгадился.

seiken ★★★★★
() автор топика
Ответ на: комментарий от lenin386

Если вы берёте наш исходник и правите там одну букву, это уже не наш исходник, а ваш.

От лицензии еще зависит, но мысль правильная.

Zhbert ★★★★★
()
Ответ на: комментарий от lenin386

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

Zhbert ★★★★★
()
Ответ на: комментарий от Stil

однако, сегфолт обычно указывает на баг в софте

Не обязательно. Там же много факторов. Переменные на разных платформых могут быть немного разными. Компилятор тоже зависит. Например, если они в VisualC++ собирали, а твой коллега в gcc / clang. Потом как собирал: кросскомпиляция или нативная сборка? Версии либ какие в системе были установлены. ТАк что тут про баги нужно думать в последнюю очередь, я щитаю.

xwicked ★★☆
()
Последнее исправление: xwicked (всего исправлений: 1)

Сам. Ну или разработчику win-версии денег занести, чтобы пилил под линукс.

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

yu-boot ★★★★
()
Ответ на: комментарий от Zhbert

Если получится убедить дедушку стать бабушкой, то он станет бабушкой, да. Только причём здесь договорные отношения?

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от xwicked

Там же много факторов. Переменные на разных платформых могут быть немного разными.

Могут. Но у x86 и ARM это всё 1:1. Размерность переменных, указателей, выравнивание. Так что варианта тут только два : 1) ASM 2) Баг. Только это не является поводом накатывать претензию и заставлять чинить и дебажить.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)

должен

Разработчик не должен, потому что, как уже сказали, вы ее запускаете на неподдерживаемой платформе, а коллега не должен потому что у него все равно ничего не получится. Хе-хе-хе.

goingUp ★★★★★
()
Ответ на: комментарий от vaddd

Если появятся технический аргумент убедить одну из сторон, что она не доделала свою работу, то почему бы и не ЛОР.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Вам до технических аргументов еще оочень далеко. Начните с чтения контрактов, потом спецификаций, после чего переписывайтесь с поставщиком.

И только после этого, если сумеете в процессе общения перевести разговор из юридической формы в техническую - возможно дойдет дело и до технических аргументов )

А пока это звучит так: «некий пытливый юнец неофициально, а может и в нарушение условий чего-то там скомпилировал, не заработало, и теперь он в растерянности»

vaddd ★☆
()
Ответ на: комментарий от seiken

Вот в том-то и дело, что это похоже

Есть реальная диагностика по проблеме? Без неё это всё пустая болтовня.

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

Gary ★★★★★
()
Ответ на: комментарий от vaddd

потом спецификаций

Какие ещё спецификации? В сказку что ли попали? В лучшем случае есть неполное ТЗ, написанное неоднозначным языком.

seiken ★★★★★
() автор топика
Ответ на: комментарий от vaddd

А пока это звучит так: «некий пытливый юнец неофициально, а может и в нарушение условий чего-то там скомпилировал

Разраб железки прекрасно знает, что у нас не wintel, потому и исходники даёт.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

А если вы пляшете голые вприсядку со страпоном, и разраб железки это прекрасно знает(с), тогда что он вам должен делать?

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 4)
Ответ на: комментарий от seiken

К прибору есть какие-то официальные требования по характеристикам? Есть зафиксированные юридически условия, которым они должны соотвествовать? На каких условиях вы вообще покупаете эти железки?

Если даже этого нет - это какое-то радиолюбительское творчество. Выпейте с поставщиком и в обнимку перетрите проблему. А если у вас официальное сотрудничество - до этого ознакомьтесь с документами

Разраб железки прекрасно знает, что у нас не wintel, потому и исходники даёт.

То есть договоров таки нет, а есть некое полуофициальное сотрудничество разработчиков разных контор? Тем более - задавайте вопрос им. Они вас еще не послали, так чего же вы аргументы пытаетесь искать, да еще и технические?

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от vaddd

Посылать в жёппу таких перетиральщиков нужно. Продавали прогу под венду, оказалось, что надо бэ её под Линукс АРМ переделать. Потому что клиент видители на АРМ дрочит. Никогда не нужно уступать в таких случаях. Бесплатной работы огребёшь, да ещё и крайнем останешься. Кто уступает - на того всё и сваливают. Мужчины вот на установку дополнительного ethernet порта ни в какую не идут, и правильно делают. Научены жизнью потому что.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 4)
Ответ на: комментарий от lenin386

Поэтому и выясняем - что же за проблема у тс )

vaddd ★☆
()

самое правильное - занести денег разрабам софтины, чтобы они вам ее под нужные платформы портировали

asaks
()
Ответ на: комментарий от vel

У каких-то древних v7 без MMU. На таких Линукс не работает.

lenin386 ★★★★
()
Ответ на: комментарий от lenin386

Но у x86 и ARM это всё 1:1. Размерность переменных, указателей, выравнивание

ARM:

Порядок байтов: Переключаемый

Окей, да

no-dashi-v2 ★★
()

Конфликт не решается без вмешательства извне, так что надо навестить ближайшее отделение ФСТЭК, пожаловаться на плохого поставщика, и он сам все скомпиляет под астру. Правда, он тогда может обидеться.

Irma ★★
()
Ответ на: комментарий от lenin386

Ты чего так истеришь, будто ты и есть тот разработчик той софтины, и ТС тебе каждые пару часов названивает с требованием всё пофиксить?

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от no-dashi-v2

В реальных системах там всегда Little-Endian.

Windows on ARM executes in little-endian mode. Both the MSVC compiler and the Windows runtime always expect little-endian data

ARM, C-Sky, and RISC-V have no relevant big-endian deployments, and can be considered little-endian in practice.

lenin386 ★★★★
()
Ответ на: комментарий от lenin386

Там еще char по дефолту под arm unsigned вместо signed. Математика плывет.

PPP328 ★★★★★
()

Хто шаманил, тому и дебажить.

anc ★★★★★
()
Ответ на: комментарий от ya-betmen

У него, наверное, такая же ситуевина была. Ждем кулстори.

Zhbert ★★★★★
()
Ответ на: комментарий от lenin386

Ну то есть клиентоориентированность там, все дела, это от лукавого? А потом удивляемся, почему у нас ничего нормально сделать не могут в стране.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

клиентоориентированность

а ты купи автомобиль, устрой ему глубокий тюнинг
а потом, когда он (почему-то) не поедет начинай лить в уши производителю про клиенториентированность и про моральный долг помогать тебе во всех твоих начинаниях

прямо таки интересно, в какие места и как именно принято посылать у них, в странах, где нормально сделать могут (тм).

olelookoe ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)