发布于2019-11-11 08:08 阅读(639) 评论(0) 点赞(16) 收藏(4)
我正在尝试使用GDB的漂亮打印工具来显示自定义C ++矩阵类。
该类是非常标准的,您可以在任何地方找到。它是由类型参数化的模板,并且可以使用像mat [i] [j]这样的C类型符号进行访问。这首先隐式返回另一个代表行或列的模板“ Slice”类,[]运算符可以再次访问该模板以提取数据。该类本身使用普通的C数组进行存储,但是它在上面实现了一些技巧,例如可以预分配更大的矩阵,启用非零开始,使用跨步等选项。该类没有本机打印界面,我无法对其进行修改,也无法轻松链接自己的代码。
自定义功能使您难以在Python中重现直接数据访问代码。但这有必要吗?通常:为什么漂亮的打印应该重现访问数据的逻辑?我不能只使用C ++调用并使用[]运算符来打印第i,j个元素吗?在此类请求期间,Slice类是GDB中的临时类,这一事实使这一情况更加复杂。
我还是python和GDB脚本编写的初学者。我试图破解示例,以gdb.execute调用替换数据访问,但是我不知道如何从to_string函数访问对象名称,因此我可以使用gdb.execute(??? +'[] + str(i)+']',False,True)。
我想知道什么是最有效的方法。
我不能只使用C ++调用并使用[]运算符来打印第i,j个元素吗?
您可以使用gdb.parse_and_eval
(docs)从漂亮打印机调用劣等(正在调试)过程,但这有几个缺点:
malloc
),那么您很可能导致漂亮打印机死锁,并且没有任何方法可以从这种死锁中恢复。作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/149504/05751a465baf70819e05/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!