标签: map-files

如何表示地图文件依赖于add_executable?

我正在使用标准命令构建可执行文件:

add_executable(MyExe ac bc)

我正在调整CMAKE_EXE_LINKER_FLAGS以发出一个地图文件,它可以正常工作.

但是,如果删除映射文件,则执行增量构建不会重新生成映射文件.这是有道理的,因为我没有表达过cmake地图文件依赖于MyExe.在上面的场景中,MyExe.map甚至不是目标,因此cmake甚至不知道它存在.

我已经尝试创建自定义目标,但我无法创建重新生成映射文件的自定义命令,因为它来自add_executable.然后我尝试使用add_dependencies(),但这似乎只影响构建顺序.

我可以显式地重新运行链接器作为构建自定义目标的自定义命令,但这似乎很浪费,因为链接确实需要一些时间.

几乎看起来我需要一些方法来告诉add_executable除了可执行映像之外还有更多的输出.有没有办法做到这一点?

如果有人能指出我正确的方向,我会很感激!提前感谢您的阅读.

cmake map-files

14
推荐指数
1
解决办法
2218
查看次数

使用格式文件批量插入不跳过目标表中的列,其中应包含146个字段

这是完整的错误:

消息4864,级别16,状态1,行3第1行第5列(FK_User_CreatedBy)的批量装入数据转换错误(指定代码页的类型不匹配或无效字符).

这是我痛苦的存在主义快照:)

在此输入图像描述

很多问题触及了这些问题,但没有一个能够解决这个问题......

我怀疑我的问题就像这里描述的那样,但我不确定.未正确跳过的目标表列不是稀疏的.

在此输入图像描述

这是在记事本和记事本++中打开的用于导入的两行数据文件(.csv):(是的我知道行终止符是\ r \n而字段/列终止符是\ t或',')

在此输入图像描述

这是纯文本:

1,fArty,Padul,1,10/1/1962,Head of ,Australia,AU Talavera Centre,NSW,7 CSU,farty.randy@gummibaer.com
2,mifsm,Jodel,1,10/1/1970,Chief Officer,Australia,AU ,NSW,8 CSU,midsm@gummibaer.com
Run Code Online (Sandbox Code Playgroud)

背景/背景: 在没有记录的情况下对小表和输入文件进行测试(记住它是在具有许多列的表上跳过列,最终会损坏)...

导入适用于小型数据库表,如下所示:

在此输入图像描述

因此创建:

在此输入图像描述

以下是表创建的代码:

    DROP TABLE dbo.tbl_Person_Importtest

CREATE TABLE dbo.tbl_Person_Importtest 
(
ID int PRIMARY KEY NOT NULL,
LastName varchar(100) NOT NULL, 
FirstName varchar(100) NOT NULL, 
FK_Gender varchar(4) NOT NULL, 
DateOfBirth date NOT NULL, 
JobTitle varchar(200) NOT NULL, 
Address1Country varchar(50) NOT NULL, 
Location varchar(200) NOT NULL,
Address1StateOrProvince varchar(50) NOT NULL, 
Department varchar(200) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server bulkinsert map-files

11
推荐指数
1
解决办法
1261
查看次数

elf 文件中的“.debug_info”部分是什么?

我有一个 elf 文件,在使用 elfparser 分析映射文件和 elf 时,我看到一个名为 .Debug_info 的部分,它占用了最大的内存。

我正在使用 xt-xc++ 为 xtensa DSP 进行编译,我还没有使用 -g 选项,也没有使用 -o2 优化级别。

在此输入图像描述

是否可以在发布版本中删除它?

c++ elf map-files

7
推荐指数
1
解决办法
7863
查看次数

Delphi Compile和Build在同一个项目上生成不同的二进制文件

在新的VCL应用程序中,编译构建操作会生成相同的二进制文件和映射文件(即使"项目中包含版本信息"选项已关闭,也会在.exe文件末尾略有不同 - 已经讨论过).映射文件的字节与字节相同.但是,我添加任何第三方组件,由Build和Compile生成的二进制和map(!)文件明显不同!

测试了两个版本的Delphi:
- 7.0版(Build 8.1)
- CodeGear™RAD Studio 2007版本11.0.1902.0471(+ 2007年12月更新)

重现步骤:

  1. 创建新的VCL应用程序.可能添加任何本机Delphi组件(我尝试从Standart,Additional,Win32和System选项卡中的所有组件).
  2. 打开"项目选项"的"链接器"选项卡上的"详细地图"文件.
  3. 建立项目.
  4. 重命名输出.exe和.map文件(例如:project1.exe到project1b.exe,project1.map到project1b.map).
  5. 编译项目.
  6. 重命名输出.exe和.map文件(例如:project1.exe到project1c.exe,project1.map到project1c.map).
  7. 比较步骤4和6中的文件.(我使用WinMerge 2.12.4.0).

我们有几乎不同的.exe文件和完全相同的.map文件.然后,如果我们再次重复所有步骤但在项目第三方组件中使用(我尝试ODAC,DOA,DevExpress和selfmade),我们会得到更多不同的.exe和不同的.map文件.

为什么?有什么建议?

更新
有关我如何找到这个以及为什么它让我感兴趣的一些信息:
Project是使用MSBuild从简单的脚本构建的.当在项目中添加了通过ITE(带有资源的dll)的翻译时,我发现当项目是Build(来自脚本或来自IDE)时 - 翻译版本工作错误 - 按钮,标签等上的某些文本来自错误的地方(字面意思来自另一个按钮,标签).当项目从IDE编译时 - 一切正常.所以我开始比较Build和Compile输出......

delphi compilation build map-files

5
推荐指数
1
解决办法
4756
查看次数

是否可以在编译时将.map文件添加为项目的资源?

我想将地图文件添加为资源,然后在每次执行系统时提取文件,以确保地图文件始终正确,并使支持的生命更容易.在Delphi 7中,我可以使用map文件作为资源来编译项目,但是映射是错误的,因为当引发异常时,调用堆栈是错误的.在Delphi Seattle中,我甚至无法编译,因为它会在生成映射之前尝试添加资源.我知道我可以在后编译thask中添加该文件,但有没有办法在编译/构建时间中执行此操作?对不起,如果我不是很具体,这是我的第一个问题.谢谢.

UPDATE

在我读了一些答案之后,我做了一些研究.我在我的项目中已经使用了JEDI异常单元,但我不知道JEDI Debug专家.它完全符合我的要求和更多.JEDI Debug专家将.map文件转换为.jdbg文件,这是一个加密的map文件(map只是一个文本文件).此外,jdbg文件比地图12%.它还具有将jdbg插入二进制(exe)的选项.为此,我启用了选项:

  • 项目 - > JCL调试专家 - >生成.jdbg文件 - >为此项目启用

  • 项目 - > JCL调试专家 - >将jdbg数据插入二进制 - >为此项目启用

  • 项目 - > JCL调试专家 - >转换后删除地图文件 - >启用此项目(如果要删除文件,当然)

要在IDE外部使用此工具,例如Jenkins,我必须在JEDI\jcl\examples\windows\debug\tools\MakeJclDbg.dpr中构建项目.构建之后,它将在jcl的bin目录中生成exe文件.如何使用:

MakeJclDbg -J -E -M map_filename

J - 创建.JDBG文件

E - 将调试数据插入可执行文件

M - 转换后删除MAP文件

可执行文件必须与MAP文件位于同一目录中.这将创建jdbg文件(基于映射文件),插入exe并删除映射.有了这个(以及JEDI的异常单元),当引发异常时,它可用于堆栈跟踪,系统使用的所有dll的版本,操作系统信息等,并且还将所有这些发送到电子邮件.

我意识到Embarcadero也有他们的bpl的jdbg文件,所以我认为他们也使用JCL工具.

delphi resources delphi-7 map-files delphi-10-seattle

5
推荐指数
1
解决办法
839
查看次数

打印Typescript 1.0地图文件不加载

在VS2013更新2 RC(Typescript 1.0 RTM)中,我无法在我的一个项目中调试TypeScript文件.我已将其追溯到地图文件声明.默认情况下,我的JS文件包含:

//# sourceMappingURL=general.js.map
Run Code Online (Sandbox Code Playgroud)

哪个应该是正确的,映射文件与TS和JS文件位于同一文件夹中.但它不起作用.如果我手动编辑文件,指定完整路径,它的工作原理如下:

//# sourceMappingURL=C:/Users/myname/Documents/Visual Studio 2013/Projects/Test/JSLib/general.js.map
Run Code Online (Sandbox Code Playgroud)

这让我感到困惑,因为浏览器肯定不会理解完整路径,例如在IISExpress网站之外?

任何人都可以建议一种方法来获取使用第一个映射的地图文件?谢谢

Windows 8.1 x64,IE11

更新:通过IISExpress运行的应用程序使用Windows身份验证.如果我关闭地图文件加载!另外,检查输出窗口我看到:

SourceMap http://localhost:53524/JSLib/general.js.map read failed: The remote server returned an error: (401) Unauthorized.'iexplore.exe' (Script): Loaded 'http://localhost:53524/JSLib/'.

我的IIS Express日志包含

2014-04-12 13:58:24 ::1 GET /JSLib/general.js.map - 53524 - ::1 - - 401 2 5 0

但我可以http://localhost:53524/JSLib/general.js.map在IE 浏览器中浏览.那么是什么在调用地图文件(VS?)以及如何让它使用我的凭据?

map-files typescript visual-studio-2013

4
推荐指数
1
解决办法
2161
查看次数

使用MAP文件VS2010 MFC

我已经开发了一个客户,他在进行某项操作时会遇到这个问题.这不会发生在同一个地方和相同的数据上,而且,它不会发生,也不会发生在我的本地开发机器上,也不会发生在我的测试虚拟机(没有所有开发设备)中.

鉴于这些条件,我决定使用MAP进行编译(在配置属性 - >链接器 - >调试器中启用选项/ MAP)以查看哪个函数导致崩溃.

如果我已经正确理解,当程序崩溃时我要检查偏移错误然后在我的MAP中搜索RVA + BASE列:

     Address                         Publics by Value                                      Rva+Base       Lib:Object
 0001:00037af0       ?PersonalizzaPlancia@CDlgGestioneDatiProgetto@MosaicoDialogs@@IAEXXZ 00438af0 f   DlgGestioneDatiProgetto.obj
 0001:00038000       ?SalvaTemporanei@CDlgGestioneDatiProgetto@MosaicoDialogs@@IAEXXZ 00439000 f   DlgGestioneDatiProgetto.obj
Run Code Online (Sandbox Code Playgroud)

实际上,我的崩溃发生在偏移:

00038C90
Run Code Online (Sandbox Code Playgroud) 所以我认为它在方法中的某个地方:

MosaicoDialogs::CDlgGestioneDatiProgetto::PersonalizzaPlancia
Run Code Online (Sandbox Code Playgroud)

但这并非绝对可能,所以假设计算机不能出错,我就是那个做得不好的人.

有人能解释我如何以正确的方式阅读MAP吗?

c++ mfc visual-studio-2010 map-files

2
推荐指数
1
解决办法
1161
查看次数

Web浏览器如何找到JavaScript文件的源映射?

下面的文章解释说,为了找到一个JavaScript文件,如源地图的jQuery,Web浏览器看起来的JavaScript代码内,查找包含线sourceMappingURL嵌入JavaScript注释指令.例如,jQuery 1.9.0缩小文件在文件末尾包含这样的指令.但是,最新的jQuery 1.11.1缩小版本不包含这样的指令,但jQuery 1.11.1映射文件也随这个(最终稳定的jQuery 1)版本一起发布.那么Web浏览器如何找到缩小文件的映射文件.

我想sourceMappingURL删除了寻找该指令的Web浏览器的惯例,以支持遵循寻找同名文件的命名约定,并.js替换为.min.这是怎么回事?

根据最近发布的Firefox Developer Edition的文档,这样的浏览器似乎仍然在寻找sourceMappingURL指令.

谢谢.

html javascript jquery conventions map-files

1
推荐指数
1
解决办法
683
查看次数

使用mapfile调用rsync

使用以下 bash 代码来处理使用 mapfile 随机传递的文件名。我想调用rsync每个文件并将其发送到目标路径dpath

mapfile -d '' fl < <(
  find "$dpath" -maxdepth 1 -type f "${inclnm[@]}" |
  shuf -z -n "$nf"
)
Run Code Online (Sandbox Code Playgroud)

或者shuf直接处理参数

mapfile -d '' fl < <( shuf -z -n "$nf" -e "${inclnm[@]}" )
Run Code Online (Sandbox Code Playgroud)

如何修改两个替代方案以rsync在每个文件上运行并发送到目的地?

bash rsync map-files

0
推荐指数
1
解决办法
174
查看次数