2016-07-25 ruki
xmake can run and debug the given target program now. We only need configure the debug mode to compile this target and run it. e.g. ```lua -- enable debug symbols if is_mode("debug") set_symbols("debug") end -- define target target("demo") set_kind("kind") add_files("src/*.c") ``` And we compile and r 继续阅读 »
2013-01-10 Klaus Ma
Code slice #define debug(fmt,...) do { \ fprintf(stderr,"[ DEBUG ] : [ %s, %d ] ",__FILE__,__LINE__); \ fprintf(stderr,fmt,##__VA_ARGS__); \ fprintf(stderr,"\n"); \ } while(0) 继续阅读 »
2014-01-06 W.Y.
上一篇文章简单介绍了 Source Map,接下来我们来看看如何利用各种工具来生成 Source Map。 什么是 Source Map? Source Map 提供了一个与语言无关的方式,来将生产环境中的代码映射回开发环境中的原始代码。 在现代的开发流程中,我们的开发环境和实际线上环境的代码通常都不一样。在应用上线部署前,我们通常都要对我们的代码进行编译、合并、压缩或者其他方面的优化,这使得我们非常困难来准确定位会原始代码。但是,在生成过程中,Source Map 文件储存了这些位置信息,因此,当我们查找一行中的某个位置时,Source Map 文件可以准确定位到原始文件中的位置。这使得我们线上环境中的代码变得可读,甚至可调 继续阅读 »
2016-09-19 YongHao Hu
go
debug的关键: 最好的方法是 "治未病"-- 尽量减少自己写的程序出 bug, 在写代码前, 理解一切: 语言的 API, 项目的上下文, 各种知识以及原理. 难道有一丝不清楚的代码你敢写吗? 根据现象与已有的知识,逻辑推理出可能的问题,再进行下一步;而不是一开始就把所有现象试出来 理解问题, 有报错信息的, 一定要把报错信息一字不漏的读完, 思考为什么会出错, 想出解决办法. 而不是不管三七二十一到 Google 上搜索. 其次是, 永远保持耐心, 相信自己能解决问题 继续阅读 »
2014-12-22 walter lee
jdb
JDB "jdb"命令 jdb是java的一个命令行debug工具,随JDK提供。语法如下: jdb [options] main_class_name jdb [options] -attach * 这里"options"是指一系列的选项; * "main_class_name"是main函数所在的类名; * address是正在运行的JAVA进程 继续阅读 »
2019-04-08 Lanffy
环境准备 说明:本文章使用的ES版本是:6.7.0 JDK Elastisearch 6.7.0编译需要JDK版本10.0及以上,我直接安装了JDK12.JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 继续阅读 »
2017-01-12 ruki
之前在给xmake做构建的效率优化的时候,需要对lua脚本的api调用性能进行分析,分析出最耗时一些lua调用api, 找出性能瓶颈,来针对性地进行优化,那么问题来了,如果对lua脚本像c程序那样进行profile呢? 我们现在看下最后实现完的最终效果: 4.681, 98.84%, 1, anonymous : actions/build/main.lua: 36 3.314, 69.98%, 1, anonymous : actions/build/main.lua: 66 3.314, 69.98%, 继续阅读 »
2016-07-24 ruki
之前xmake默认编译windows目标,debug模式下采用的是-Z7编译选项,内置的调试符号信息到obj文件里面 但是这种方式按msdn的文档上说,是属于旧式的调试符号文件格式,所以为了考虑后续的兼容性,xmake修改了默认的调试符号生成规则, 改为默认启用pdb符号文件,并且pdb的方式更为常用。。 这个行为的修改,并不会影响到xmake.lua的设置,如果在这个文件中,设置了启用调试符号: lua set_symbols("debug") 那么,编译debug版本的目标时,就会自动生成pdb文件,以tbox为例: bash $ xmake f -m debug $ xmake 编译完成后,会自动在build 继续阅读 »
2016-07-18 ruki
xmake默认情况下是不会去生成pdb文件,就算是debug编译,启用了调试符号: lua set_symbols("debug") 也是不会生成额外的pdb文件,它会把所有调试符号内置到程序里面,如果要独立生成pdb文件,可以对xmake.lua进行如下修改: ```lua -- 先禁用内置的调试符号开关 --set_symbols("debug") -- 静态库目标 target("test") set_kind("static") -- 仅针对windows平台 if is_plat("windows") then -- 启用pdb生成 add_cxflags("-ZI", "-Fd$(bui 继续阅读 »
2016-07-25 ruki
现在xmake在windows下,也已经支持调试运行了,可以在编译完debug版本的程序后,直接进行调试开发。。 我们继续以tbox工程为例: bash $ xmake f -m debug $ xmake r -d demo 上述命令,先配置了debug模式编译,为了启用pdb调试符号文件的生成,然后自动编译后,调试运行demo程序。。 xmake会在配置的时候,自动检测windows上注册表里面的默认调试器,然后加载我们的目标程序并运行。 一般情况下,加载的是vs自带的vsjitdebugger调试器,当然xmake也支持windbg和ollydbg(做逆向的,这个用的比较多哈。。) 我们试着运行demo中的exc 继续阅读 »