Microsoft Developer Network > 포럼 홈 > Phoenix > Help with Assertion failures
질문하기질문하기
 

답변됨Help with Assertion failures

  • 2009년 5월 29일 금요일 오전 9:22if if 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Hello all,
    I'm trying to instrument some code, which involves creation of new temporary and assigning another variableOperand as it is to the temporary, as well as adding something to that variableOperand and assigning that to the newly created temporary. The instrumentation also introduces some branches.
    I'm getting the following error in the process. Can somebody please suggest or give and idea of where I might be wrong.

    -------------------------------------------------------------------------

    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\targets\architectures\x86\function-linkage.cpp, Line 374
      Unreached
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir.cpp, Line 10578
      reg != nullptr : SinkDestinationToRegister should only be used with a valid register
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-constructor.cpp, Line 484
      variableOperand->IsTemporaryRegister
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\targets\architectures\x86\lower.cpp, Line 515
      Unreached : Unhandled Assign
       tv290-(RegisterCandidate) = ASSIGN t302                                  #28
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\targets\runtimes\base\lower.cpp, Line 1458
      (nextInstruction != nullptr) : Custom processing did not return next instruction to process
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\targets\runtimes\base\lower.cpp, Line 1481
      previousInstruction != nullptr : Lower expansion is skipping instructions
       tv290-(RegisterCandidate) = ASSIGN t302                                  #28
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\targets\runtimes\base\lower.cpp, Line 1546
      newInstruction->IsPseudo || newInstruction->WasLegalized || !newInstruction->IsLir || newInstruction->IsCommon : Customized expansion not f
    ull legalized, call Lower->Range
       ESP               = add ESP, 4                                           #28
      in (Function number 2) _main [line 28] during Lower
      in (Module) ../testFiles/testFunc.c
    fatal error C1001: An internal error has occurred in the compiler.
    (compiler file 'd:\enlistments\sdk_june08\src\clients\c2\c2-diagnostics.cpp', line 704)
    Access Violation Fault (instruction at "0x303B99D9" read memory at "0x0000000C")
    Internal Compiler Error in c:\Program Files\Phoenix SDK June 2008\bin\debug\x86\cl.exe.  You will be prompted to send an error report to Micr
    osoft later.

    -------------------------------------------------------------------------


    Regards,
    If If

답변

  • 2009년 6월 4일 목요일 오전 8:10if if 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     답변됨

    I was doing the instrumentation after CxxIL Reader phase.
    The problem was that because my function returned a boolean, I used RegisterCondType for its return value and then used that in the compare instruction as a source. But turns out that the CompareInstruction requires sources to be of IntType.


    Regards,
    If If

    • 답변으로 표시됨if if 2009년 6월 5일 금요일 오전 6:27
    •  

모든 응답

  • 2009년 6월 3일 수요일 오후 4:42Andy Ayers - MSFT중재자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    When (where in the phase list) are you doing instrumentation?
    Architect - Microsoft Phoenix Project
  • 2009년 6월 4일 목요일 오전 8:10if if 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     답변됨

    I was doing the instrumentation after CxxIL Reader phase.
    The problem was that because my function returned a boolean, I used RegisterCondType for its return value and then used that in the compare instruction as a source. But turns out that the CompareInstruction requires sources to be of IntType.


    Regards,
    If If

    • 답변으로 표시됨if if 2009년 6월 5일 금요일 오전 6:27
    •