|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
При выполнении select-запроса внутри icuuc30.dll наружу выбрасывается исключение. Не могу понять где именно оно там происходит. Проявляется только в 64-битной версии. Где можно нарыть pdb-файлов для Firebird Embed 2.5.8 27089? ЗЫ: в выложенных бинарях не нашёл ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 12:04 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDen, у IBM спрашивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 12:22 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDen, раз выбрасывается - значит оно никому не нужно ? :) Это исключение не обрабатывается в ICU ? И попадает - куда ? Клиенту ? И что он видит ? Стек вызовов (хотя бы по модулям FB) есть ? В 2.5 исходники ICU присутствуют в репозитории Firebrid. Это значит, что каждый может его собрать так, как считает нужным. И - нет - мы не включаем в дистрибутив все подряд pdb. Только необходимый минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 13:03 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Исключение выходит наружу и роняет нашу службу. Стек слишком мутный, чтобы понять в чём проблема. Но на его топе - несколько вызовов внутри icuuc30.dll. Пока разбираюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2020, 14:09 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDenИсключение выходит наружу и роняет нашу службу. ну и чего вы там суёте, что ни у кого такой ошибки нет, а у вас есть? И потом, последний релиз это 2.5.9. Какого ... вы спрашиваете про 2.5.8? Всё уже, проехали, 2.5.8 забыт и никому не интересен. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 01:09 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
p.s. извиняюсь за грубость, но 2.5.8 на sf.net нету (там 2.5.7 последняя), а на firebirdsql.org - уже 2.5.9. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 01:21 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
упс, оно только в additional dowloads https://www.firebirdsql.org/en/firebird-2-5-8/ тем не менее, рекомендую проверить всё то же самое на 2.5.9. А у же потом про багрепорты думать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 01:59 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Пока не понятно кто виноват в этой ситуации. Возможно что в функцию API FB передаётся некорректный utf8 или что-то типа того. На руках есть только дамп с мутным стеком, так что до сих пор мало что понятно. Стэк мутный, т.к. исключение сначала захватывается внутрь std::future<void>, а потом перевыбрасывается при вызове std::future<void>::get(). std::future<void> даёт приемущества при написании кода, но с ним начинается ж..па при разборе дампов. вот что выдаёт windbg на !analyze -v Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136.
Но если посмотреть на utf8_back1SafeBody, то видно что она проста как пробка. Так что единственное, что там может произойти - это AV. Отсюда предположение на некорректную строку в utf8, переданную в API FB. Правда, не факт, что падает в utf8_back1SafeBody. Это видно по слишком большим смещениям (+0x6c45 например), а utf8_back1SafeBody очень короткая. Т.к. меня нету оригинального icuuc30.pdb, я не могу его подсунуть в windbg PS: на 2.5.9 конечно-же проверю, если пойму как это можно воспроизвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 09:03 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
А при чём тут Firebird ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 09:16 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
hvlad А при чём тут Firebird ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 09:29 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
hvlad hvlad А при чём тут Firebird ? ArtDen Стэк мутный, т.к. исключение сначала захватывается внутрь std::future<void>, а потом перевыбрасывается при вызове std::future<void>::get() ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 09:39 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDenСтэк мутный Нет совершенно ничего мутного в этом стэке. Ошибка происходит на PrimeDB+0x250b6f, а icuuc30 это системная библиотека Windows 10, не имеющая никакого отношения к Firebird. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 12:17 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Отладчик говорит, что icuuc30.dll была загружена из каталога нашего приложения D:\PrimeDB\firebird-client-2.5.x. И если бы это была виндовая либа, то pdb к ней подтянулся в отладчик автоматом. PS: Я вообще не обвиняю FB. Пока склонен считать, что это мой косяк. Но без оригинальной pdb и без возможности повторения я бессилен. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 13:27 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDenОтладчик говорит, что icuuc30.dll была загружена из каталога нашего приложения D:\PrimeDB\firebird-client-2.5.x. И вот тут-то и есть косяк: вы винде подсунули не ту библиотеку на которую она рассчитывала. kernel32.dll от XP в каталог своего приложения положить не пробовали? Тоже будет смешно, наверное. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 13:47 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov icuuc30 это системная библиотека Windows 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 13:49 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDen, я так и не понял - проблема воспроизводится или нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 13:50 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Внезапно при анализе логов появилась идея как всё это можно воспроизвести. И воспроизвелось. Оказалось, что падает глючный стандартный std::regex не некоторых входных данных прямо перед вызовом SQL-запроса. Недавно переходил с boost::regex на std::regex, в надежде, что его подправили в плане скорости и глючности, и похоже зря. Каким образом при этом на вершине стэка в дампе при этом оказался icuuc30.dll - я ума не приложу O_o. Возможно что это глюк передачи и перевыброса исключения через std::future и std::promise на 64-битной платформе. PS: тему можно закрывать, а автора банить, чтобы не порочил светлое имя FB )) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 14:28 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
hvladИ даже источник такого утверждения имеется ? Вышеприведённый дамп, где utf8_back1SafeBody_3_0 вызывается из KERNELBASE!UnhandledExceptionFilter. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 15:56 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, пальцем в небо, ничего нового. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 16:41 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
ArtDen Недавно переходил с boost::regex на std::regex, в надежде, что его подправили в плане скорости и глючности, и похоже зря. ArtDen Каким образом при этом на вершине стэка в дампе при этом оказался icuuc30.dll - я ума не приложу O_o. Ты сам вполне правильно написал: ArtDen не факт, что падает в utf8_back1SafeBody. Это видно по слишком большим смещениям (+0x6c45 например), а utf8_back1SafeBody очень короткая ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 16:46 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
hvladЭто просто лучшее, что смог показать отладчик, не имея полного набора pdb. Приписать адрес другой процедуре он может, но перепутать модули - нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 20:15 |
|
pdb для icuuc30.dll
|
|||
---|---|---|---|
#18+
Я всё-таки за кривой механизм перевыброса исключения. В С++ есть механизм передачи исключений между потоками. Он используется в std::future и std::promise примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
При выполнении calc_or_throw с аргументом 666 исключение захватится и запишется в res2, а затем будет перевыброшено при вызове res2.get(). И callstack, который попал в дамп будет зависеть от того, насколько корректно реализован механизм перевыброса исключения. Пока что я вижу, что он реализован не особо хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2020, 20:57 |
|
|
start [/forum/topic.php?fid=40&fpage=11&tid=1560238]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 405ms |
0 / 0 |