| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Перестала запускаться программа. Как починить?

Перестала запускаться программа. Как починить?

Ответ
Поиск в этой теме
Непрочитано 07.08.2022, 12:46 #1
Перестала запускаться программа. Как починить?
DISM
 
Регистрация: 24.11.2021
Сообщений: 13

Приветствую форумчан.
Активно пользуюсь программой нумерации блоков anshl (она размещена: https://dwg.ru/dnl/11290/cp23, долгих лет здоровья автору)
Но в какой-то момент программа перестала запускаться, выдавая следующую ошибку:
Настройки успешно загружены.; ошибка: неверный тип аргумента: stringp nil

У меня подозрение, что какая-то системная переменная поменяла свое значение и программа это обрабатывает как ошибку. Как выяснить причину такого поведения программы? И как эту ошибку устранить?

Autocad 2022, Win10
Просмотров: 1946
 
Непрочитано 07.08.2022, 14:02
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,010


любая программа при наличии исходного кода чинится пошаговой трассировкой в проблемных местах с контролем значений переменных) Но поскольку там скомпилированный fas - то обращайтесь к автору, попробуйте написать ему в личные сообщения.
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.08.2022, 20:03
#3
DISM


 
Регистрация: 24.11.2021
Сообщений: 13


Я писал автору. Он, к сожалению, не ответил.
DISM вне форума  
 
Непрочитано 07.08.2022, 20:43
#4
VitalyAF

пенсионер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,877


Цитата:
Сообщение от DISM Посмотреть сообщение
Я писал автору. Он, к сожалению, не ответил
... Это судьба всех костылей!
VitalyAF вне форума  
 
Непрочитано 08.08.2022, 01:01
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,010


это судьба всего ПО, создаваемого на энтузиазме силами отдельных людей) Не накатывали обновления на саму 10-ку случаем перед тем, как перестало корректно работать?
Сергей812 вне форума  
 
Непрочитано 08.08.2022, 01:03
| 1 #6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,859


Offtop: Именно поэтому я не доверяю аддонам без открытых исходников
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.08.2022, 08:56
1 | 1 #7
VitalyAF

пенсионер
 
Регистрация: 19.07.2005
Россия
Сообщений: 2,877


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Не накатывали обновления на саму 10-ку случаем перед тем, как перестало корректно работать?
Она, 10-ка, вроде не спрашивает...
PS
Запустил на 21H2 OS Build 19044.1415 LTSC 2021
всё ок!

Последний раз редактировалось VitalyAF, 08.08.2022 в 10:42.
VitalyAF вне форума  
 
Автор темы   Непрочитано 08.08.2022, 15:37
#8
DISM


 
Регистрация: 24.11.2021
Сообщений: 13


Цитата:
Сообщение от VitalyAF Посмотреть сообщение
Запустил на 21H2 OS Build 19044.1415 LTSC 2021
всё ок!
Вот я и подозреваю, что дело не в программке, а в автокаде. А что может быть в автокаде не так? Конечно же системные переменные.
DISM вне форума  
 
Непрочитано 08.08.2022, 15:50
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,010


Цитата:
Сообщение от DISM Посмотреть сообщение
Вот я и подозреваю, что дело не в программке, а в автокаде. А что может быть в автокаде не так? Конечно же системные переменные.
еще есть переменные среды той же винды - системные, пользовательские.. в общем, есть поле для экспериментов)
Сергей812 вне форума  
 
Непрочитано 08.08.2022, 16:46
#10
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,412


Цитата:
Сообщение от DISM Посмотреть сообщение
Настройки успешно загружены.; ошибка: неверный тип аргумента: stringp nil
скорее всего косяк в файле настроек, там что-то вроде *.dat грузится. какя-то строка не строка. сравнить файлы настроек с разных систем.
koMon вне форума  
 
Автор темы   Непрочитано 09.08.2022, 17:29
#11
DISM


 
Регистрация: 24.11.2021
Сообщений: 13


Цитата:
Сообщение от koMon Посмотреть сообщение
скорее всего косяк в файле настроек, там что-то вроде *.dat грузится. какя-то строка не строка. сравнить файлы настроек с разных систем.
Не, нету никакого файла настроек.
DISM вне форума  
 
Непрочитано 09.08.2022, 17:58
#12
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,821


А в какой папке лежит программа и рабочие файлы программы? Может прав не стало хватать программе для доступа?
SetQ вне форума  
 
Автор темы   Непрочитано 09.08.2022, 18:08
#13
DISM


 
Регистрация: 24.11.2021
Сообщений: 13


Цитата:
Сообщение от SetQ Посмотреть сообщение
А в какой папке лежит программа и рабочие файлы программы? Может прав не стало хватать программе для доступа?
Пробовал из всех папок, в т.ч. C:\Program Files\Autodesk\Autocad 2022.

А вообще, все программы у меня запускаются из одной папки, которая прописана в "доверенных местоположениях"

Последний раз редактировалось DISM, 09.08.2022 в 19:40.
DISM вне форума  
 
Непрочитано 09.08.2022, 22:17
#14
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,821


Цитата:
Сообщение от DISM Посмотреть сообщение
C:\Program Files\Autodesk\Autocad 2022
Лучше как раз из пользовательской, что-нибудь "C:\Users\Username\..."
SetQ вне форума  
 
Непрочитано 10.08.2022, 01:24
#15
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,629


Похоже, пришло время выкладывать инструкции по отладке лиспов)

Ну вроде ж всё там не так сложно?)
1. Открываем лисп в блокноте.
2. Включаем русский (особенно, если есть русский в приглашениях программы - они иначе превратятся в "кракозябры"), далее Ctrl+A, Ctrl+C (выделить всё, скопировать).
3. Запускаем в Автокаде команду _VLIDE - встроенный редактор лисп, имеющий кроме всего прочего функционал для отладки кода и отлова ошибок.
4. Жмём Файл -> Новое окно.
5. Включаем русский язык. Вставляем код из буфера (Ctrl+V).
6. Ищем в IDE (среде разработки на лиспе) панель Инструменты, а на ней жмём кнопку Проверить содержимое окна редактора (белый прямоугольник с галочкой на иконке изображён).
Если в коде есть ошибки, которые системе удастся выловить до запуска, о них будет сообщено - тогда жмём дважды на сообщение об ошибке и попадаем в то место кода, где эта ошибка возникает.
7. Если ошибок не выявлено, нажимаем Загрузить содержимое окна редактора (иконка - прямоугольник со стрелкой вниз), а затем в окне Консоль вызываем эту команду, но не в формате команд для ком.строки Автокада, а в формате лиспа:
Код:
- где TEST - имя запускаемой команды.
8. На ошибке программа остановится, после чего нажимаем Вид -> Поиск ошибок.
9. В появившемся окошке используем метод научного тыка: левый двойной и правый щелчки по строчкам дадут разной информации и возможностей действовать. В том числе найти ту строчку, где не хватает "строки" (в смысле кусочка текста - тип данных в лиспе) для какой-то функции, для которой она (эта строка) - обязательна. Но строка по каким-то причинам не создается в ходе выполнения кода, и вместо строки функция получает nil и ругается:
Код:
[Выделить все]
; ошибка: неверный тип аргумента: stringp nil
И ругается, надо сказать, законно, потому как хорошо бы перед вызовом таких функций делать в коде проверки на то, создалась ли строка или нет. Если создалась, то продолжать выполнение программы дальше, если нет - выдать нужное сообщение в командную строку. Тогда, может, и отладку запускать бы не пришлось - было бы сразу ясно, где собака зарыта.

P.S.: Прошу меня поправить, если я где ошибся - писал по памяти, код не запускал. Да и тут это я так понял, мало бы толку дало, потому что не работает только на одной машине.

P.P.S.: И еще один метод, которым я иногда пользуюсь - сверка системных переменных из двух файлов.
Для этого понадобятся:
1. Установленный ExpressTools и его команда _Sysvdlg, в окне которой нужно нажать на кнопку Выгрузки списка переменных и их значений в текстовый файл (левая кнопка, не помню, как называется, по-английски что-то). Создаем таким образом два текстовых файла: первый, где работает, второй - где нет.
2. Редактор текста помощнее, например Notepad++, а также плагин - надстройка для него (Compare) который выявит все отличия в двух файлах.

Последний раз редактировалось skkkk, 10.08.2022 в 01:34.
skkkk на форуме  
 
Непрочитано 10.08.2022, 01:34
| 1 #16
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,859


Для начала нужен как минимум исходник. Которого нет.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.08.2022, 01:39
#17
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,629


Мда, лучше б наверно отдохнул пошёл чем разумничался тут!
Глянул повнимательнее: а исходники-то закрытые. Прошу простить, заработался. Ну что ж, может, кому и сгодится.
Да и второй постскриптум, может, сможет помочь? Там тоже всё несложно.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от skkkk Посмотреть сообщение
P.P.S.: И еще один метод, которым я иногда пользуюсь - сверка системных переменных из двух файлов.
вот здесь подробнее описывал.

----- добавлено через ~14 мин. -----
Да, вспомнил, что эта выгрузка переменных не включает в себя ReadOnly-переменные (только для чтения). Но раз уж их поменять всё равно нельзя, то толку за них цепляться? Или может быть толк?
skkkk на форуме  
 
Непрочитано 10.08.2022, 06:43
1 | #18
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,116


В прежних версиях Автокада в папке Support был файл acadinfo.lsp. В нем функция c:acadinfo, которую можно запустить из комстроки как команду acadinfo

Эта функция исследует всё, что "знает" Автокад - все системные и глобальные переменные, имена доступных функций и многое другое. В том числе находящееся в скомпилированных fas и arx.

Результаты записываются в файл acadinfo.txt (несколько сотен Кб). Исследование этого файла позволяет узнать много интимных подробностей - "Ты не поверишь!".

Выполняя acadinfo после загрузки разных файлов можно найти различия. Иногда можно и "исправить" программу, написав свою одноименную функцию, которая переопределит "родную".
ShaggyDoc вне форума  
 
Непрочитано 10.08.2022, 07:46
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,859


Увы, эта команда (в штатном режиме) не все показывает, насколько я помню.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.08.2022, 09:41
#20
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,412


касательно субъекта, скопировал vlx в папку, прописанную в Working Support File Search Path. гружу (load "anshl_2.2.3.VLX"). запуск anshl грит "Программа запущена не из поддерживаемых каталогов. Запоминание настроек недоступно." с какого перепуга непонятно? но так-то дальше все работает. настройки, ну или профиль (неоднозначность) автоматом вроде должны писаться/читаться в

"anshl.dat".
Код:
[Выделить все]
(NUMPR . "10")
(SETINCR . 1)
(SETPREF1 . "")
(SETPREF2 . "")
(SETSUF . "")
(SETEL . "2.5")
(ORD . 0)
(SETANG . "0")
(S_RAD . "rad1")
(SLST . "0")
(MASK . "rad5")
(SETDIR . "1")
(ANGAT . "0")
(REMSET . "0")
(SET_LIST "Ничего не выбрано")
(BLATLIST)
(VAT)
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
интимных подробностей
интима там конечно нет, но объявленные функции есть, глобальные переменные тоже...) но конечно они безотносительной привязки к субъекту. если запускать насухо, то вполне можно понять, но проблему незапуска не решить, имхо.
koMon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Перестала запускаться программа. Как починить?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FrostPile. Программа для расчета свайных фундаментов в условиях ММГ - нужна ли? B0RGiR Расчетные программы 6 03.09.2016 09:41
Помогите. Программа отображения каталогизированного списка блоков. --Илья-- Программирование 18 02.12.2009 11:25
Программа перестала ссылаться на картинку Диана AutoCAD 1 15.05.2009 21:26
Программа для подчета сумм перестала работать Jason AutoCAD 9 04.02.2009 18:15