jupyter notebook中设置显示最大行和列及浮点数,在head观察行和列时不会省略 jupyter notebook中df.head(50)经常会因为数据太大,行列自动省略,观察数据时不爽!...pd.set_option(‘display.float_format’, lambda x: ‘%.5f’ % x) 欢迎使用Markdown编辑器写博客 补充知识:Jupyter notebook 输出部分显示不全的问题...在我更换了jupyter主题后(如何更换主题,见上篇博客),输出部分总是显示不全,差两个字符;Github上已经有人提出了这个问题,并有了解决方案,亲测有效。...这个13px,可能有的人改了以后,还是显示不全,可以多试几个数,因为有的人浏览器显示比例不一样 重新运行jupyter notebook,输出部分显示不全的问题解决。...以上这篇jupyter 实现notebook中显示完整的行和列就是小编分享给大家的全部内容了,希望能给大家一个参考。
Python特别灵活,肯定方法不止一种,这里介绍一种我觉得比较简单的方法。...如下图,使用x == np.max(x) 获得一个掩模矩阵,然后使用where方法即可返回最大值对应的行和列。 where返回一个长度为2的元组,第一个元素保存的是行号,第二个元素保存的是列号。
GDB强大的功能依赖于繁杂的命令,若想精通GDB和熟练操作所有GDB命令绝非易事。当然,在实际的代码调试过程中,没有必要熟练掌握GDB所有命令,可以快速掌握GDB常见的命令来应付大部分的调试工作。...或者l linenum,显示指定行周围的源码。或l -,显示当前行前面的源码。...命令产生的堆栈针; (gdb) q:退出; 3.FAQ 3.1gdb如何分屏显示源代码 (1)gdb模式下使用layout src 或者大于号 >。...在默认设置下,方向键和PageUp PageDn 都是用来控制gdbtui的src窗口的,所以,我们常用的上下键用来显示前一条命令和后一条命令的功能就没有了, 不过这个时候我们可以focus cmd将焦点转移到命令窗口...---- 参考文献 [1]在gdb中显示源码(gdbtui使用方法) [2]GDB的使用,重点讲解图像化 gdb -tui 方式
字节码技术在我们常见的各大框架中都有用到. 这篇文章我们将讲解 ASM 在 cglib 和 fastjson 上的实际使用案例。...fastjson 库内置 ASM,基于 objectweb asm 3.3 改造,只保留必要的部分不到 2000 行代码,通过 ASM 自动生成序列号、反序列化字节码,减少反射开销,理论上可以提高 20%...那么 fastjson 是怎么解决反射低效的问题的呢?通过调试的方式,把 fastjson 生成的字节码写入到文件中。...可能每天写业务代码不会需要使用这些底层的优化,但是当我们想造一个轮子,想读懂开源代码背后的核心时,都不得不深入的去学习了解这部分知识,很难,但很值得。...小结 这篇文章我们主要讲解了 ASM 字节码改写技术在 cglib 和 fastjson 上的应用,一起来回顾一下要点: 第一,cglib 使用 ASM 生成了目标代理类的一个子类,在子类中扩展父类方法
解决办法 echo "set startup-with-shell off" > ~/.gdbinit TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码...、汇编和寄存器文本窗口,为了方便和代码关联上可以调出tui窗口 tui enable 或者 sudo gdb -tui main 遇到问题 Loading Go Runtime support....显示当前行,断点等信息 (asm)assembly 汇编代码窗口 (reg)register 寄存器窗口 最常用的也就是默认使用的方式,也可以通过layout命令来进行选择自己需要的窗口,可参见help...gdbtui相关的其他命令 layout 用以修改窗口布局 help layout layout src layout asm layout split winheight 调整各个窗口的高度.../exp1/main.go:5 (gdb) winheight src -5 (gdb) layout split 界面如下 可以同步查看源码和对应的汇编代码
*注意-g,在linux下用gcc编译时,如果不加-g,编译器会进行优化,就不会生成调试信息,无法调试,也可以使用-ggdb,这是gcc为gdb提供的更详细的调试信息,别的调试器无法使用。...二、常见命令 l(list):显示代码,list 行号:将显示当前文件以“行号”为中心的前后10行代码,如:list 12,list 函数名:将显示“函数名”所在函数的源代码,如:list main...clear n:清除第n行的断点; d (delete) n:删除第n个断点; disable n:暂停第n个断点; enable n:开启第n个断点; 例:下图是删除断点和暂停开始和清楚的示例 ?...layout src:显示源代码窗口; layout asm:显示反汇编窗口; layout regs:显示源代码/反汇编和CPU寄存器窗口; layout split:显示源代码和反汇编窗口; display...: 在每次单步进行指令后,紧接着输出被设置的表达式及值; stepi或nexti:单步跟踪一些机器指令; Ctrl + L:刷新窗口; quit:简记为 q ,退出gdb; 回车:重复上一条命令;
背景 最近有个简单的迭代需求,需要统计下整个项目内的Toast的msg, 这个有人说直接快捷键查找下,但这里比较坑爹的是项目中查出对应的有1000多处。...几乎是边查文档编写,记录写编写过程: 查找目录下所有java文件 查找Java文件中含有Toast相关的行 在对应行中找出对应的id 使用id在String中查找对应的toast提示信息。...分号可以省略,通过换行来区分 变量不需要提前声明 if和for语句是这个样子滴: for node in root: if node.attrib.has_key("name") > 0 : 导库...查找Java文件中的Toast 需要找出Toast的特征,项目中有两个Toast类 BannerTips和ToastUtils 两个类。 1.先代码过滤对应的行。...在对应行中找出对应的id 使用id在String中查找对应的toast提示信息。 最后去重。 最后一个比较简单,可以自己写,也可以解析下xml写。
call 函数(参数):调用程序中可见的函数,并传递“参数”,如:call gdb_test(55) quit:简记为 q ,退出gdb 2、设置断点 break n (简写b n):在第n行处设置断点...list 行号:将显示当前文件以“行号”为中心的前后10行代码,如:list 12 list 函数名:将显示“函数名”所在函数的源代码,如:list main list :不带参数,将接着上一次 list...print a:将显示整数 a 的值 print ++a:将把 a 中的值加1,并显示出来 print name:将显示字符串 name 的值 print gdb_test(22):将以整数22作为参数调用...6、分割窗口 layout:用于分割窗口,可以一边查看代码,一边测试: layout src:显示源代码窗口 layout asm:显示反汇编窗口 layout regs:显示源代码/反汇编和CPU...寄存器窗口 layout split:显示源代码和反汇编窗口 Ctrl + L:刷新窗口 7、cgdb强大工具 cgdb主要功能是在调试时进行代码的同步显示,这无疑增加了调试的方便性,提高了调试效率
程序入口 在Linux命令行用 go build 编译hello.go,得到可执行程序hello,然后使用gdb调试,在gdb中我们首先使用 info files 命令找到程序入口(Entry point...)地址为0x452270,然后用 b *0x452270 在0x452270地址处下个断点,gdb告诉我们这个入口对应的源代码为 runtime/rt0_linux_amd64.s 文件的第8行。...和argv数组的地址分别放在DI和SI寄存器中,第三行指令跳转到 rt0_go 去执行。...CPU中有个叫fs的段寄存器与之对应,而每个线程都有自己的一组CPU寄存器值,操作系统在把线程调离CPU运行时会帮我们把所有寄存器中的值保存在内存中,调度线程起来运行时又会从内存中把这些寄存器的值恢复到...//getg函数在源代码中没有对应的定义,由编译器插入类似下面两行代码 //get_tls(CX) //MOVQ g(CX), BX; BX存器里面现在放的是当前g结构体对象的地址
查找需要跟踪的系统函数 首先通过查询系统中/usr/include/asm/unistd_32.h文件,获取与学号对应的系统调用号及其所对应的函数sync(),并且Linux-5.0.1内核中实现了该函数...进行gdb调试 根据文件存放的位置,在rootfs.img所在的目录下开启两个终端分别执行如下命令。...# 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行 (gdb)c #continue,跳到端点处 (gdb)s #step...在menuOS中输入sync,调用我们写好的sync()函数,相应的在 gdb 调试中进入了系统函数sys_sync()的断点处,函数位于sync.c文件的 123~375 行。...单步进入执行,寄存器只是单纯的在代码行中向下移动一行。当函数调用结束,此时用来存放结果的变量已经获得了值,函数位置回到了main()函数并继续执行。
其参数可以是源代码行,函数名或者目标程序的某个地址,trace 命令创建跟踪点,程序在此点上短暂中断,收集数据,然后程序继续往下执行。...恢复断点,将文件中的断点打一遍, watchpoints可能会失效 四、保存现场和回溯 (1)gdb 的快照保存 checkpoint: 生成当前状态的快照 info checkpoint:显示快照信息...,一边测试 layout split 显示源代码和汇编窗口 layout next 显示下一个layout layout prev 显示上一个layout layout regs 显示源代码/汇编和寄存器窗口...exp1 expression (8)在gdb中编译和注入代码 七、设置和显示 (1)设置操作 set args 设置程序参数 show args 显示程序参数 set print vtbl on/off...info symbol addr 查找地址对应的symbol,如果找不到,会返回最近的symbol+偏移 directory/dir dirname 设置符号表搜索路径 info program 显示程序状态
最近又要写velocity脚本,实在不能忍了,去velocity的官网仔细研究了一下,原来虽然velocity没有提供velocity的专用编译器,但是有贡献者为velocity提供了在各种编辑器上的语法高亮等扩展支持...我常用的编译器是ultraedi和eclipse,所以根据《Velocity and Development Tools》中的说明,为ultraedit和eclipse分别增加了velocity支持。...ultraedit ultraedit的语法高亮支持是可以自定义的,关于在ultraedit上添加对velocity的语法高亮支持的详细说明,参见这里velocity addition for Ultraedit...保存的位置参见下图: ? ? 然后重新用ultraedit打开一个.vm文件,你会发现它已经支持velocity关键字的高亮显示了 ?...注意: ultraedit.uew文件中最开始的/L9这个数学要根据你的wordfiles文件夹中的文件数来决定。
设置断点也可以直接b 接对应的代码行数 比如main函数在第47行,b main 等价b 47 2. 打印输出指定地址的值 这里适用于已知结构体+地址。...即 tree3_01.c 文件中第 53 行代码在程序运行时的地址范围,从 main 函数的偏移量为 41 的位置开始,到 main 函数的偏移量为 53 的位置结束。...当前程序执行到tree3_01.c 文件中第 53 行代码【未执行】。 list 查看代码内容 list list 与 l 等价 如果没有指定参数,list 命令默认会显示当前执行位置的附近源代码。...也可以指定行号或者函数名作为参数,以显示特定位置的源代码。 list: 显示当前执行位置周围的源代码。 list function_name: 显示名为 function_name 的函数的源代码。...list line_number: 显示指定行号的源代码。 3.2 方式二:f 在过程中,f 命令的功能是帮助了解当前执行的代码所在的位置,特别是在调试过程中出现错误时,可以帮助确认错误发生的地点。
本文将详细介绍在Ubuntu16.04 LTS上对OpenJDK8进行编译,为了方便大家快速搭建起OpenJDK8的调试开发环境,我还录制了对应的视频放到了B站上,大家可以参考。...之前的文章在Ubuntu 16.04上编译OpenJDK8的源代码 已经介绍过在Ubuntu上编译OpenJDK8的源代码,这一篇将介绍在Ubuntu上调试OpenJDK8源代码的2种方式。...1、GDB调试源代码 在Linux上常用GDB调试C/C++源代码。使用GDB运行如上实例生成的Class文件,具体命令如下: gdb --args ....list(l) 列出源代码,接着上次的位置往下列,每次列10行ll list(l) 行号 列出从指定行开始的源代码 list(l) 函数名 列出指定的函数的源代码 next(n) 执行下一行语句 print...(p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数 quit(q) 退出gdb调试环境 step(s) 执行下一行语句,如果有函数调用则进入到函数中 start 开始执行程序,停在main函数第一行语句前面等待命令
编译GoDbg项目指令:go build -gcflags="-N -l" GoWorks/GoDbg gdb调试程序 因为gdb对Golang的支持也是在不断完善中,为使用gdb调试Golang程序,...,通过p命令显示对应变量: (gdb) l 17 12 C map[int]string 13 D []string 14 } 15 16 func DBGTestRun...从上面的输出我们可以看到一个很奇怪的事情,虽然DBGTestRun有4个参数传入,但是,似乎var3和var4 gdb无法识别,在后续对dlv的实验操作中,我们发现,dlv能够识别var3, var4....缺少在goroutine上不同frame的变量查看,个人感觉gdb调试Golang程序功能大打折扣,在后面对dlv的实验操作中我们可以看到,dlv可以!...调试器,目前dlv对windows平台的支持似乎不是很好,我在windows平台调试,dlv无法找到目标程序的源代码,因此建议在Linux平台下调试Golang程序时使用。
g++中宏NULL究竟是什么?.pdf NULL是个指针,还是个整数?0?或(void*)0?答案是和g++版本有关。g++ 4.6支持C++11,引入了nullptr,也许会发生变化。...下面再借助gdb,来看一看它的真面目(博文:《GDB高级技巧》有介绍gdb的高级使用)。...编译成功后,在gdb中跟踪运行程序,在main函数处打断点即可: adoop@VM-39-166-sles10-64:~/current> gdb ....(gdb) 从gdb的跟踪结果,不难看到NULL的真身是__null,但__null又是什么了?...long __null_ds; /usr/include/asm-i386/vm86.h: long __null_es; 未能找到满意的答案,那么__null只能是g++内置定义的,所以未出现在任何头文件中
-S//查看一个可执行程序对应的二进制文件 readelf process.exe-Debug -S | grep debug//将二进制文件中和debug有关的部分过滤出来 gdb命令 为了演示gdb...源代码,接着上次的位置往下列,每次10行。...l num或者list num:num是行号,将源代码的第num行在中间位置显示,每次10行。...num/Fun_name Tip: gdb会默认记录上一步操作,如果想要显示整个文件内容,首先可以从最开始显示l 0,紧接着直接l,每次显示10行,直到结束为止。...run或者r:运行,类似于VS中的F5 程序正常执行,这里程序只是运行,无法调试 b num或者b Fun_name:打断点,可以在行号num处打断点,可以在名为Fun_name的函数处打断点。
/cmdline 1 2 3 命令行参数个数会保存到rdi中,rsi会记录包含参数地址的数组地址。 接下来也可以debug确认下: gdb --args ....darray,len); printf("The sum of the elements of this doubled array = %lf\n", sum); return 0; } 对应的汇编如下...内联汇编有2种,Basic Inline 和 Extended Inline。...Basic 内联需要注意的点如下: 第一行需要标明汇编类型,是ATT还是Intel,这样汇编器才会正确解析 汇编用到的参数必须定义成全局变量 如果使用的寄存器保存有关键数据,会被覆盖,这时候后果不确定,...registers *//* optional ); 可选部分需要按照寄存器约束,常用部分映射关系如下: image.png 这儿明显的差异如下: 通过寄存器显示传递参数 需要声明可能会修改的寄存器
使用 GDB 调试时,涉及两个软件: ① 在 Git Bash 中运行的 riscv64-unknown-elf-gdb :它发出各类调试命令,比如连接调试服务软件 (T-HeadDebugServer...next n 执行下一行 nexti ni 执行下一行(以汇编代码为单位) step s 一次执行一行,包括函数内部 setpi si 执行下一行 list l 显示函数或行 print p 显示表达式...注意:在 Git Bash 中无法使用 TUI 功能,需要使用 Powershell 。...使用以下命令可以显示这些 layout : ① layout src:显示源码窗口 ② layout asm:显示汇编窗口 ③ layout regs:在之前的窗口上再显示寄存器窗口 ④ layout...要同时显示源码和寄存器,可以执行如下 2 个命令: layout src layout regs 要同时显示反汇编码和寄存器,可以执行如下 2 个命令: layout asm layout regs 要同时显示源码和反汇编码
-g选项的作用是:在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在调试时必须保证gdb能找到源文件。...(gdb) 如下图所示: ? gdb提供一个类似Shell的命令行环境,上面的(gdb)就是提示符,在提示符后面输入gdb的相应命令就可以实现其对应的功能。...[8] 段错误 如果程序运行时出现段错误,用gdb可以很容易定位到究竟是哪一行引发的段错误。在gdb中运行,遇到段错误会自动停下来,这时可以用命令查看当前执行到哪一行代码了。 ...[9] gdb基本命令 gdb有许多有用的命令如list(显示源代码),这样就可以结合源码与调试信息更好的进行调试。...函数第一行语句前面等待命令 step(s) 执行下一行语句,如果有函数则进入到函数中 break(b) 行号 在某一行设置断点 break 函数名 在某个函数开头设置断点 break(b)… if…
领取专属 10元无门槛券
手把手带您无忧上云