Neo, == Секретная техника HiAsm-кунг-фу: ==
== ==
0) Запоминаем адрес Runtime error at 000xxxxx ( лидирующие нули запоминать не обязательно)
1) Открыть ту же схему (обязательно - без малейших изменений!), которая вылетала после компиляции (в идеале - запускать из HiAsm, дождаться вылета, запомнить ошибку и , не закрывая схемы провести манипуляции, описанные ниже)
2) Сервис - Компиляторы - Сами_знаете_какой_компилятор - Командная строка
3) Дописываете в конце ещё один ключик с приклееным (то есть без пробела, без лидирующих нулей) к нему адресом: "%fname%" "-U %opath%." -Q -Fxxxxx (Внимание! Теперь при компиляции среда удалит приложение из папки, а перенастроенный компилятор новое не создаст, не удивляйтесь)
4) Жмёте "Сохранить", убеждаетесь, что тот же компилятор выбран в настройках компиляции
5) Запускаете компиляцию и смотрите в панель "Отладка"
6) Видите там :
6.1) Галочка снизу указывает, какой именно оператор был скомпилирован в вызвавший ошибку участок кода.
7) Открываем исходник компонента (например, по CTRL+F) , если это не компонент, а библиотека, можно, конечно, посмотреть и туда, но дальнейшие пункты не помогут.
8) Ищем нужный номер строки (CTRL+G)
9) Ищем по строчкам выше указанной первую вида procedure THIИмяКомпонента._ТипТочки_НазваниеТочки;
10) Вот на точке с таким именем у Вас и вылезла проблема, для восстановления нормальной компиляции удалите -Fxxxxx из настроек компилятора.
------------ Дoбавленo в 10.56:
Neo, если не уверены в твёрдой руке и зорком глазе, делаем мини-помощника (схема универсальная, рассчитана на извлечения адреса ошибки из системных и паскалевских окон, но под FPC пришлось бы немного подпилить):
Add(MainForm,2953706,581,301)
{ Width=337 Height=104 Caption="iFoundBug v 1.01 for HiAsm4" Position=1 Point(doVisible) } Add(EnumProcess,1,595,455) { Name="HiAsm.exe" Point(doFindName) Point(doTerminateApp) Point(onEndEnum) link(onProcess,913119:doSearch,[]) link(onEndEnum,9898452:doWork3,[(634,468)]) } Add(Position,913119,644,455) { Target="HiAsm.exe" StartPos=0 ShortSearch=1 link(onSearch,1:doKill,[(688,461)(688,504)(584,504)(584,475)]) } Add(MathParse,6921369,420,511) { DataCount=1 MathStr="1 XOR ((%1 = 8) OR ((%1 < 58) AND (%1 > 47)) OR ((%1 < 71) AND (%1 > 64)) OR ((%1 < 103) AND (%1 > 96))) " ResultType=0 link(onResult,15365421:doReadOnly,[(459,517)(459,551)(367,551)(367,461)]) } Add(Convertor,3538249,378,511) { Mode=3 link(onResult,6921369:doCalc,[]) } Add(Edit,15365421,378,441) { Left=190 Width=110 Height=25 Font=[MS Sans Serif,14,0,0,1] Text="" MaxLenField=8 ClearAfterEnter=1 Point(onChar) Point(doReadOnly) Point(doSetFocus) link(onEnter,15187644:doWork2,[]) link(onChar,3538249:doConvert,[(422,461)(422,479)(373,479)(373,517)]) } Add(Label,12751195,581,343) { Width=185 Height=25 Font=[MS Sans Serif,14,0,0,1] Caption="Runtime Error xxx at" } Add(CheckBox,13015840,546,406) { Top=32 Width=329 Align=4 Caption="Close HiAsm Automatically " } Add(IndexToChanel,14112223,546,448) { Point(Index) link(onEvent1,9898452:doWork2,[]) link(onEvent2,1:doEnum,[]) link(Index,13015840:Checked,[]) } Add(BitBtn,8848863,7,308) { Left=300 Width=28 Height=26 WinStyle=1 Bitmap=[ZIP3609000078DA73F235E36400033320D600620928666450804840E591C17F7AE0FFFF69830799F9F0301D62E6E302D4301FD91C747309DA41C07C74FDD8DC8DD70E3CE63390182FA498CF40469AC5AA87CEE6134A23F8C4B0EA1966E143AFF4438FF44F8FFC4B8FF2674894CFA318111E501A240AA21B686827C86C0082C8CFF1] Point(onMouseDown) link(onMouseDown,13657323:doEvent1,[]) } Add(Timer,7902216,119,322) { Interval=100 Enable=1 link(onTimer,3079690:doReadKey,[]) } Add(Keyboard,3079690,168,322) { Key=1 link(onReadKey,8327191:doEvent,[]) } Add(IndexToChanel,8327191,217,322) { Count=1 link(onEvent1,15825518:doEvent1,[]) } Add(Hub,15825518,259,322) { link(onEvent1,7902216:doStop,[(282,328)(282,358)(114,358)(114,335)]) link(onEvent2,14550971:doEvent1,[]) } Add(ChanelToIndex,8531589,525,329) { link(onIndex,2953706:doVisible,[]) } Add(Hub,13657323,77,315) { link(onEvent1,2014895:In,[(105,321)(105,314)]) link(onEvent2,7902216:doTimer,[]) } Add(LineBreak,7325179,511,301) { Caption="doHide" link(Out,8531589:doWork1,[(571,307)(571,321)(513,321)(513,335)]) Primary=[2014895,-392,7] } Add(Hub,14550971,301,329) { OutCount=3 link(onEvent1,1915601:doData,[(385,335)(385,237)]) link(onEvent2,8531589:doWork2,[]) link(onEvent3,15365421:doSetFocus,[(344,349)(344,468)]) } Add(MultiElementEx,1915601,392,231) { @Hint=#24:Error message box reader|19:SendMessage version| link(onCopy,5992494:In,[]) } BEGIN_SDK Add(EditMultiEx,5756599,21,21) { WorkCount=#6:doData| EventCount=#6:onCopy| Width=412 link(doData,5834539:doData,[(35,27)(35,97)]) } Add(MouseEvent,2701288,119,49) { Point(Handle) } Add(Position,234326,273,133) { Target=" at 000" StartPos=0 ShortSearch=1 link(onSearch,13714767:doOperation,[]) link(Str,3605979:Var2,[]) } Add(Math,13714767,322,133) { Op2=7 ResultType=0 link(onResult,12025091:doCopy,[]) } Add(Copy,12025091,364,133) { Count=5 link(onCopy,5756599:onCopy,[(425,139)(425,27)]) link(Str,3605979:Var3,[(370,117)]) } Add(GetDataEx,3605979,273,112) { Angle=3 link(Data,13155387:Value,[(256,117)(256,177)(237,177)]) } Add(SendMessage,15421399,133,140) { Message=13 link(onSend,16305821:doGet,[]) link(Handle,2701288:Handle,[]) link(LParam,1164314:Memory,[(153,131)(209,131)]) } Add(MemoryStream,1164314,189,84) { Point(Memory) Point(doSize) } Add(DataToFile,16305821,189,133) { Type=6 link(onGet,13155387:doValue,[]) link(Stream,1164314:Stream,[]) } Add(Hub,8233292,98,91) { OutCount=3 link(onEvent1,1164314:doClear,[]) link(onEvent2,1164314:doSize,[]) link(onEvent3,15421399:doSendMessage,[(122,111)(122,146)]) } Add(DoData,5834539,49,91) { Data=Integer(128) link(onEventData,8233292:doEvent1,[]) } Add(Memory,13155387,231,133) { link(onData,234326:doSearch,[]) } END_SDK Add(LineBreak,6525385,308,448) { Caption="doTxt" link(Out,15365421:doText2,[]) Primary=[5992494,126,-217] } Add(MultiElementEx,15450613,392,189) { @Hint=#24:Error message box reader|15:WinInfo version| } BEGIN_SDK Add(EditMultiEx,569034,21,21) { WorkCount=#6:doData| EventCount=#6:onCopy| Width=412 link(doData,2459071:doWinInfo,[(109,27)(109,132)]) } Add(MouseEvent,15165435,182,49) { Point(Handle) } Add(DoData,7830115,245,126) { link(onEventData,569034:onCopy,[(355,132)(355,27)]) link(Data,2459071:Caption,[(251,114)(230,114)(230,170)(209,170)]) } Add(WinInfo,2459071,196,126) { link(onWinInfo,7830115:doData,[]) link(Handle,15165435:Handle,[]) } END_SDK Add(FormatStr,4856907,700,448) { DataCount=1 Mask="function run(){ sys.addcompiler("Delphi",""%fname%" "-U %opath%." -Q -F%1","%curdir%compiler\delphi\dcc32.exe","dpr"); sys.setcompiler("delphi","Delphi_DBG"); }" link(onFString,9435683:doEvent1,[(737,454)(737,475)]) link(Str1,9456644:Var,[]) } Add(HubEx,9898452,630,448) { link(onEvent,4856907:doString,[]) } Add(StrList,9418387,770,448) { FileName="ifndbg.his" } Add(Hub,9435683,742,469) { OutCount=3 link(onEvent1,9418387:doText,[]) link(onEvent2,9418387:doSave,[(763,482)(763,489)]) link(onEvent3,8609104:doShellExec,[(763,489)(763,517)]) } Add(Button,1448331,378,399) { Top=52 Width=329 Height=25 Align=4 Caption="Analize IT!" link(onClick,15187644:doWork1,[(417,405)]) } Add(LineBreak,7868499,378,483) { Type=1 link(Data,15365421:Text,[]) Primary=[9456644,322,-56] } Add(HubEx,15187644,413,448) { link(onEvent,14112223:doEvent,[]) } Add(WinExec,8609104,770,504) { Param=" " FileName="ifndbg.his" }
|