0

C++ Builder 2010 プロジェクトで EAccessViolation Exception を下回っています。
StackTrace にプロジェクト ファイルが表示されません。エラーの場所を見つけるにはどうすればよいですか? このアプリケーションは、TIdTCPServer コンポーネントを使用します。

コール スタック情報:
-------------------------------------------------- -------------------------------------------------- -
|アドレス |モジュール |ユニット |クラス |手続き/メソッド |行 |
-------------------------------------------------- -------------------------------------------------- -
|*例外スレッド: ID=44100; 優先度=0; クラス = TIdThreadWithTask |
|---------------------------------------------------------------- -------------------------------------------------- | |
|004E17AC|Desktop.exe |System.pas |TObject |無料 |9458[2] |
|004E226E|Desktop.exe |System.pas | |_HandleFinallyInternal |11939[16]|
|7D4D936A|kernel32.dll| | | |MultiByteToWideChar | | |
|7D4DCD06|kernel32.dll| | | |VirtualQueryEx | | |
|7D4D920B|kernel32.dll| | | |MultiByteToWideChar | | |
|004E7034|Desktop.exe |System.pas | |Utf8ToUnicode |22264[5] |
|004E0601|Desktop.exe |System.pas | |_ReallocMem |3097[9] |
|004E05F4|Desktop.exe |System.pas | |_ReallocMem |3089[1] |
|004E4129|Desktop.exe |System.pas | |_UStrSetLength |17365[37]|
|004E3D5C|Desktop.exe |System.pas | |_UStrAsg |16893[1] |
|004E737F|Desktop.exe |System.pas | |UTF8ToUnicodeString |22433[11]|
|004E3D4C|Desktop.exe |System.pas | |_UStrClr |16849[1] |
|004E7394|Desktop.exe |System.pas | |UTF8ToUnicodeString |22434[12]|
|004E1FBA|Desktop.exe |System.pas | |_HandleAnyException |11315[84]|
|7D4D936A|kernel32.dll| | | |MultiByteToWideChar | | |
|004E05E0|Desktop.exe |System.pas | |_FreeMem |3030[6] |
|004E05DC|Desktop.exe |System.pas | |_FreeMem |3025[1] |
|004E2AB4|Desktop.exe |System.pas | |_LStrClr |13683[12]|
|004E2A98|Desktop.exe |System.pas | |_LStrClr |13672[1] |
|004E3EBD|Desktop.exe |System.pas | |_UStrFromPWCharLen |17101[28]|
|7D620341|ntdll.dll | | | |RtlNtStatusToDosErrorNoTeb | | |
|7D62031F|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620324|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620341|ntdll.dll | | | |RtlNtStatusToDosErrorNoTeb | | |
|7D62031F|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620324|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D4DCCEF|kernel32.dll| | | |VirtualQueryEx | | |
|7D4DCCE1|kernel32.dll| | | |仮想クエリ | | |
|004E1FBA|Desktop.exe |System.pas | |_HandleAnyException |11315[84]|
|7D61EA51|ntdll.dll | | | |KiUserExceptionDispatcher | | |
|004E21F6|Desktop.exe |System.pas | |_HandleFinally |11872[39]|
|7D61F1D7|ntdll.dll | | | |RtlLeaveCriticalSection | | |
|7D6251EB|ntdll.dll | | | |LdrUnlockLoaderLock | | |
|7D6251F2|ntdll.dll | | | |LdrUnlockLoaderLock | | |
|7D4D936A|kernel32.dll| | | |MultiByteToWideChar | | |
|7D4DCD06|kernel32.dll| | | |VirtualQueryEx | | |
|7D4D920B|kernel32.dll| | | |MultiByteToWideChar | | |
|004E7034|Desktop.exe |System.pas | |Utf8ToUnicode |22264[5] |
|004E0601|Desktop.exe |System.pas | |_ReallocMem |3097[9] |
|004E05F4|Desktop.exe |System.pas | |_ReallocMem |3089[1] |
|004E4129|Desktop.exe |System.pas | |_UStrSetLength |17365[37]|
|004E3D5C|Desktop.exe |System.pas | |_UStrAsg |16893[1] |
|004E737F|Desktop.exe |System.pas | |UTF8ToUnicodeString |22433[11]|
|004E3D4C|Desktop.exe |System.pas | |_UStrClr |16849[1] |
|004E7394|Desktop.exe |System.pas | |UTF8ToUnicodeString |22434[12]|
|004E1FBA|Desktop.exe |System.pas | |_HandleAnyException |11315[84]|
|7D4D936A|kernel32.dll| | | |MultiByteToWideChar | | |
|004E05E0|Desktop.exe |System.pas | |_FreeMem |3030[6] |
|004E05DC|Desktop.exe |System.pas | |_FreeMem |3025[1] |
|004E2AB4|Desktop.exe |System.pas | |_LStrClr |13683[12]|
|004E2A98|Desktop.exe |System.pas | |_LStrClr |13672[1] |
|004E3EBD|Desktop.exe |System.pas | |_UStrFromPWCharLen |17101[28]|
|7D620341|ntdll.dll | | | |RtlNtStatusToDosErrorNoTeb | | |
|7D62031F|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620324|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620341|ntdll.dll | | | |RtlNtStatusToDosErrorNoTeb | | |
|7D62031F|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D620324|ntdll.dll | | | |RtlNtStatusToDosError | | |
|7D4DCCEF|kernel32.dll| | | |VirtualQueryEx | | |
|7D4DCCE1|kernel32.dll| | | |仮想クエリ | | |
|7D61F1D7|ntdll.dll | | | |RtlLeaveCriticalSection | | |
|004E1FBA|Desktop.exe |System.pas | |_HandleAnyException |11315[84]|
|7D61EA51|ntdll.dll | | | |KiUserExceptionDispatcher | | |
|004B120E|Desktop.exe |Classes.pas | |ThreadProc |11018[8] |
|004E2A0C|Desktop.exe |System.pas | |ThreadWrapper |13579[33]|
|---------------------------------------------------------------- -------------------------------------------------- | |
|呼び出しスレッド: ID=68288; 優先度=2; クラス = TIdListenerThread |
|---------------------------------------------------------------- -------------------------------------------------- | |
|004B1ED0|Desktop.exe |Classes.pas |TThread |再開 |11558[1] |
|004B1EC8|Desktop.exe |Classes.pas |TThread |再開 |11557[0] |
|004B120E|Desktop.exe |Classes.pas | |ThreadProc |11018[8] |
|004E2A0C|Desktop.exe |System.pas | |ThreadWrapper |13579[33]|
|---------------------------------------------------------------- -------------------------------------------------- | |
| | | |
4

2 に答える 2

0

FastMM の最新バージョンをhttp://sourceforge.net/projects/fastmm/files/FastMM%204.x%20Stable%20Releases/からダウンロードします。

それを c++builder にインストールします。
ドキュメントを読んで、FastMM でデバッグ モードを設定する方法を確認してください。
ダングリング ポインターやタブーな場所への書き込みがある場合、FastMM はそれらをかなり迅速に見つける必要があります。

幸運を。

(FastMM のより単純なバージョン含まれていることに注意してください。ただし、このバージョンはより深くなります)

于 2011-05-30T13:24:00.627 に答える
0

これは、破損したメモリまたはポインタである必要があります。これをデバッグするのは簡単ではありません。使用しているすべてのポインターが正しい値を持ち、範囲外に出ていないことを検証する必要があります。

于 2010-04-09T13:08:48.673 に答える