MapsterMapper / Mapster

A fast, fun and stimulating object to object Mapper
MIT License
4.31k stars 328 forks source link

Stackoverflow Diagnosing Help #400

Closed cblaze22 closed 11 months ago

cblaze22 commented 2 years ago

Is there a way to have Mapster stop a stackoverflow from happening, and throw a regular exception so we can determine where the issue maybe occuring. We have a hard situation where we know the code, but not the URL where this stack overflow is occuring. It would be nice if Mapster could stop a loop after so many tries.

Below is the situation.

1. Mapster.Utils.ReferenceTuple.GetHashCode(...)
2. System.Collections.Generic.GenericEqualityComparer`1[[Mapster.Utils.ReferenceTuple, Mapster.Core]].GetHashCode(...)
3. System.Collections.Generic.Dictionary`2[[Mapster.Utils.ReferenceTuple, Mapster.Core],[System.__Canon, mscorlib]].FindEntry(...)
4. System.Collections.Generic.Dictionary`2[[Mapster.Utils.ReferenceTuple, Mapster.Core],[System.__Canon, mscorlib]].TryGetValue(...)
5. DynamicClass.(...)
6. DynamicClass.(...)
7. DynamicClass.(...)
8. DynamicClass.(...)
9. DynamicClass.(...)
10. DynamicClass.(...)
11. DynamicClass.(...)
12. DynamicClass.(...)
13. DynamicClass.(...)
14. DynamicClass.(...)
15. DynamicClass.(...)
16. DynamicClass.(...)
17. DynamicClass.(...)
18. DynamicClass.(...)
19. DynamicClass.(...)
20. DynamicClass.(...)
21. ...
22. DynamicClass.(...)
23. DynamicClass.(...)
24. DynamicClass.(...)
25. DynamicClass.(...)
26. DynamicClass.(...)
27. DynamicClass.(...)
28. DynamicClass.(...)
29. DynamicClass.(...)
30. DynamicClass.(...)
31. DynamicClass.(...)
32. DynamicClass.(...)
33. DynamicClass.(...)
34. DynamicClass.(...)
35. DynamicClass.(...)
36. DynamicClass.(...)
37. DynamicClass.(...)
38. DynamicClass.(...)
39. DynamicClass.(...)
40. DynamicClass.(...)
41. DynamicClass.(...)
42. DynamicClass.(...)
43. DynamicClass.(...)
44. DynamicClass.(...)
45. DynamicClass.(...)
46. DynamicClass.(...)
47. DynamicClass.(...)
48. DynamicClass.(...)
49. DynamicClass.(...)
50. DynamicClass.(...)
51. DynamicClass.(...)
52. DynamicClass.(...)
53. DynamicClass.(...)
54. DynamicClass.(...)
55. DynamicClass.(...)
56. DynamicClass.(...)
57. DynamicClass.(...)
58. DynamicClass.(...)
59. DynamicClass.(...)
60. DynamicClass.(...)
61. DynamicClass.(...)
62. DynamicClass.(...)
63. DynamicClass.(...)
64. DynamicClass.(...)
65. DynamicClass.(...)
66. DynamicClass.(...)
67. DynamicClass.(...)
68. DynamicClass.(...)
69. DynamicClass.(...)
70. DynamicClass.(...)
71. DynamicClass.(...)
72. DynamicClass.(...)
73. DynamicClass.(...)
74. DynamicClass.(...)
75. DynamicClass.(...)
76. DynamicClass.(...)
77. DynamicClass.(...)
78. DynamicClass.(...)
79. DynamicClass.(...)
80. DynamicClass.(...)
81. DynamicClass.(...)
82. DynamicClass.(...)
83. DynamicClass.(...)
84. DynamicClass.(...)
85. DynamicClass.(...)
86. DynamicClass.(...)
87. DynamicClass.(...)
88. DynamicClass.(...)
89. DynamicClass.(...)
90. DynamicClass.(...)
91. DynamicClass.(...)
92. DynamicClass.(...)
93. DynamicClass.(...)
94. DynamicClass.(...)
95. DynamicClass.(...)
96. DynamicClass.(...)
97. DynamicClass.(...)
98. DynamicClass.(...)
99. DynamicClass.(...)
100. DynamicClass.(...)
101. DynamicClass.(...)
102. DynamicClass.(...)
103. DynamicClass.(...)
104. DynamicClass.(...)
105. DynamicClass.(...)
106. DynamicClass.(...)
107. DynamicClass.(...)
108. DynamicClass.(...)
109. DynamicClass.(...)
110. DynamicClass.(...)
111. DynamicClass.(...)
112. DynamicClass.(...)
113. DynamicClass.(...)
114. DynamicClass.(...)
115. DynamicClass.(...)
116. DynamicClass.(...)
117. DynamicClass.(...)
118. DynamicClass.(...)
119. DynamicClass.(...)
120. DynamicClass.(...)
121. DynamicClass.(...)
122. DynamicClass.(...)
123. DynamicClass.(...)
124. DynamicClass.(...)
125. DynamicClass.(...)
126. DynamicClass.(...)
127. DynamicClass.(...)
128. DynamicClass.(...)
129. DynamicClass.(...)
130. DynamicClass.(...)
131. DynamicClass.(...)
132. DynamicClass.(...)
133. DynamicClass.(...)
134. DynamicClass.(...)
135. DynamicClass.(...)
136. DynamicClass.(...)
137. DynamicClass.(
138. DynamicClass.(...)
139. DynamicClass.(...)
140. DynamicClass.(...)
141. DynamicClass.(
142. DynamicClass.(...)
143. DynamicClass.(
144. DynamicClass.(...)
145. DynamicClass.(...)
146. DynamicClass.(...)
147. DynamicClass.(
148. DynamicClass.(...)
149. DynamicClass.(...)
150. DynamicClass.(
151. DynamicClass.(...)
152. DynamicClass.(...)
153. DynamicClass.(
154. DynamicClass.(...)
155. DynamicClass.(...)
156. DynamicClass.(
157. DynamicClass.(...)
158. DynamicClass.(
159. DynamicClass.(...)
160. DynamicClass.(
161. DynamicClass.(...)
162. MapsterMapper.ServiceMapper.Map[[System.__Canon, mscorlib],[System.__Canon, mscorlib]](...)
163. Tournaments.Services.Brackets.DivisionBracketsService.GetBracketEventForDivision(...)
andrerav commented 2 years ago

@cblaze22 The next release of Mapster will include symbol packages to make it easier to debug problems like this. Could this be a solution for you, or is this a run-time problems which limits you to inspecting log files after the fact?

cblaze22 commented 2 years ago

I might be able to use those.

andrerav commented 2 years ago

Okay, I will let you know when the new version is released and you can give it a spin and see if it solves your problem.

andrerav commented 11 months ago

@cblaze22 Symbol packages have been available for a while now, so I trust that you have had a chance to try it out. I'm closing this issue for now, but please let me know if you think this is still a desirable feature.