MonoSymbolFileException in CheckLineNumberTable
Mono.CompilerServices.SymbolWriter.MonoSymbolFileException: Exception of type 'Mono.CompilerServices.SymbolWriter.MonoSymbolFileException' was thrown.
at Mono.CompilerServices.SymbolWriter.MethodEntry.CheckLineNumberTable (Mono.CompilerServices.SymbolWriter.LineNumberEntry[] line_numbers) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.MethodEntry..ctor (Mono.CompilerServices.SymbolWriter.MonoSymbolFile file, Mono.CompilerServices.SymbolWriter.CompileUnitEntry comp_unit, Int32 token, Mono.CompilerServices.SymbolWriter.ScopeVariable[] scope_vars, Mono.CompilerServices.SymbolWriter.LocalVariableEntry[] locals, Mono.CompilerServices.SymbolWriter.LineNumberEntry[] lines, Mono.CompilerServices.SymbolWriter.CodeBlockEntry[] code_blocks, System.String real_name, Flags flags, Int32 namespace_id) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.SourceMethodBuilder.DefineMethod (Mono.CompilerServices.SymbolWriter.MonoSymbolFile file, Int32 token) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.SourceMethodBuilder.DefineMethod (Mono.CompilerServices.SymbolWriter.MonoSymbolFile file) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.MonoSymbolWriter.WriteSymbolFile (Guid guid) [0x00000] in <filename unknown>:0
at Mono.Cecil.Mdb.MdbWriter.Dispose () [0x00000] in <filename unknown>:0
at Mono.Cecil.ModuleWriter.Write (Mono.Cecil.ModuleDefinition module, Disposable`1 stream, Mono.Cecil.WriterParameters parameters) [0x00000] in <filename unknown>:0
at Mono.Cecil.ModuleWriter.WriteModule (Mono.Cecil.ModuleDefinition module, Disposable`1 stream, Mono.Cecil.WriterParameters parameters) [0x00000] in <filename unknown>:0
at Mono.Cecil.ModuleDefinition.Write (System.String fileName, Mono.Cecil.WriterParameters parameters) [0x00000] in <filename unknown>:0
at Mono.Cecil.AssemblyDefinition.Write (System.String fileName, Mono.Cecil.WriterParameters parameters) [0x00000] in <filename unknown>:0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
暖更新IL注入抛错, 但是只在Release编译上出现, Dev版本没问题. 看到是写Assembly时检查代码行出了错. 怀疑是部分代码导致的, 根据二分法, 不断定位出错的注入类型, 定位到一个类. 打开后发现有这样的函数:
bool XXX()
{
return false;
CodeLine....
}
看起来是这个函数的处理逻辑废弃了, 直接return 了false. 下面的代码行作废, 但是没有注释掉.
根据异常源自代码行校验, 判断是该函数的IL注入异常导致的写入Assembly错误.
把return false后的CodeLine全部注释后, 果然没有了异常.
结论: IL注入逻辑没有处理好这种特殊的代码. dev版本和release版本的编译在这种代码上有区别(可以打开IL确认)
MonoSymbolFileException in CheckLineNumberTable的更多相关文章
随机推荐
- 基于Spring Boot+Cloud构建微云架构
前言 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道.因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易让你理解和操作出现偏差 ...
- [RoarCTF 2019]Online Proxy
目录 [RoarCTF 2019]Online Proxy [RoarCTF 2019]Online Proxy 题目复现链接:https://buuoj.cn/challenges 参考链接:官方w ...
- CTF 文件包含
目录 一.基本概念 二.本地文件包含 三.远程文件包含 四.具体场景 五.补充 一.基本概念 文件包含 将相同函数写入单独的文件中,需要使用时直接调用 文件包含漏洞 将被包含的文件设置为变量,导致客户 ...
- Win10电脑桌面壁纸自动变成黑色无法更换怎么解决
很多用户在升级到win10之后,发现在使用过程中经常会碰到一些问题,就是电脑桌面壁纸总是会自动变成黑色,而且无法设置桌面背景壁纸,这是怎么回事呢,出现这样的问题可能是因为系统不是正版,或者是电脑设置不 ...
- PTA中如何出Java编程题?
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考. 有多种类型输入的编程题: 类型1:固定数量输入 从控制台读入**两个**数,然后将其相加输出. 对于 ...
- PokemonGo-LBS AR项目实战
<Pokemon GO>在2016年发布,立即成为一款现象级手游,时至今日也是最成功的AR游戏!<Pokemon GO>目前仍旧吸引全球范围内大批玩家入驻,而这也使得该款游戏创 ...
- ios开发 需要注意的地方、注意事项
/* 一.LaunchScreenLaunchScreen产生原因:代替之前的启动图片好处:1.可以展示更多的东西2.可以只需要出一个尺寸的图片. 启动图片的优先级启动图片 < LaunchSc ...
- [LeetCode] 314. Binary Tree Vertical Order Traversal 二叉树的垂直遍历
Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...
- [LeetCode] 516. Longest Palindromic Subsequence 最长回文子序列
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- pymysql DAO简单封装
#!/usr/bin/env python # -*-coding:utf-8 -*- # # 无法执行多个query,self.conn.close()放在CdbConn类的单独函数中,每次quer ...