我可以使用调试Python代码ddd -pydb prog.py.所有python命令行参数也可以在之后传递prog.py.在我的例子中,许多类已经在C++中实现,并且使用了python boost-python.我希望我可以一起调试python代码和C++.例如,我想设置这样的断点:  
break my_python.py:123
break my_cpp.cpp:456
cont
Run Code Online (Sandbox Code Playgroud)
当然我在用调试选项编译c ++代码后尝试它,但调试器不会跨越boost边界.有什么办法吗?
编辑:我看到http://www.boost.org/doc/libs/1_61_0/libs/python/doc/html/faq/how_do_i_debug_my_python_extensi.html.我跟着它,我可以为python和C++进行调试.但我最好还是想进行可视化调试,DDD但我不知道怎么在里面给'target exec python'命令DDD.如果不是(只是gdb在链接中使用)我应该能够调试Python脚本,而不是交互式地给出链接中的python命令.
我已经读过
 使用grep --exclude/ -  include语法来查看某些文件,
 
但在我的CentOS6.4中,当我这样做时  
grep --exclude=*.cmd ckim * -r
Run Code Online (Sandbox Code Playgroud)
我从*.cmd文件中看到了很多grepped行.
所以似乎排除选项对我不起作用.
怎么了?
当然我可以做的事情  
grep ckim \`find . -name \*.c -print\`
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么grep不起作用.
有时我在csh中对不同的目标文件使用相同的foreach操作.
如果我可以在一行中给出foreach命令,我可以轻松地替换目标文件名来重复该过程.(我通常使用`find.-name ...`来表示目标文件)
为了这个问题的目的,让我们假设我想要捕获所有*.txt文件.  
$ foreach i (*.txt)
foreach? cat $i
foreach? end
Run Code Online (Sandbox Code Playgroud)
我阅读https://unix.stackexchange.com/questions/32873/running-a-full-foreach-command并试过
alias disp 'echo "foreach i (*.txt)"; echo "cat "\$"i"; echo "end"; | /bin/csh'
Run Code Online (Sandbox Code Playgroud)
当我输入disp它给我Invalid null command.
如果我可以在一行中完成,我可以做!foreach:gs/\.c\>/.h/(用.h替换.c).我该怎么做?
在RTEMS初始化例程中,我看到下面的代码.
void boot_card(const char *cmdline)
{
  rtems_interrupt_level  bsp_isr_level;
  /*
   * Special case for PowerPC: The interrupt disable mask is stored in SPRG0.
   * It must be valid before we can use rtems_interrupt_disable().
   */
  #ifdef PPC_INTERRUPT_DISABLE_MASK_DEFAULT
    ppc_interrupt_set_disable_mask( PPC_INTERRUPT_DISABLE_MASK_DEFAULT );
  #endif /* PPC_INTERRUPT_DISABLE_MASK_DEFAULT */
  /*
   *  Make sure interrupts are disabled.
   */
  (void) bsp_isr_level;      // <--- 
  rtems_interrupt_disable( bsp_isr_level );
  -- continues--
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,在开头,bsp_isr_level被声明为rtems_interrupt_level类型(最终类型定义为unsigned int).
但是,线路(void) bsp_isr_level;在做什么?(标有// < - 上面).这不是传递作为函数参数作为一个变量这里.
编辑:我发现在我的情况下变量是由rtems_interrupt_disable函数分配的(实际上它是一个宏#defined)所以它不是'没有被使用'.但是虽然已分配,但似乎未使用指定的值.我不知道这种语法是否也用于这种情况(值已分配但未使用).顺便说一句,我发现在RTEMS源代码树中有一个函数(实函数,而不是#defined)rtems_interrupt_disable,如下所示具有void参数.(在cpukit/rtems/src/intrbody.c中).(#defined版本在cpukit/rtems/include/rtems/rtems/intr.h中)
rtems_interrupt_level rtems_interrupt_disable( void )
{       
  rtems_interrupt_level previous_level;
  _ISR_Disable( previous_level …Run Code Online (Sandbox Code Playgroud) 我看到一个文件 .missing-syscalls.d ,其中包含
-:  /home/ckim/MVP/snake_linux_3.3.mvpe/include/linux/kconfig.h \
 include/generated/autoconf.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/types.h \
 include/asm-generic/int-ll64.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/bitsperlong.h \
 include/asm-generic/bitsperlong.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/unistd.h
Run Code Online (Sandbox Code Playgroud)
我知道 .d 文件仅用于显示依赖性。但是什么是“-”作为目标?
我已经找到了答案,但在stackoverflow上找不到它,所以我在这里问.
让我们假设自上次提交(和推送)以来我有一些本地更改,我想在特定提交(几个提交前)和我当前的本地版本之间git diff文件.
我的意思是,例如,我可以看到两个特定提交之间的文件差异   
git diff COMMIT1 COMMIT2 src/testsuites/file1.c  
Run Code Online (Sandbox Code Playgroud)
但我希望看到COMMIT1和本地文件之间的区别.你是怎样做的?
在使用 std::to_string() 的 C++ 中,我应该如何预填充从整数转换的字符串?我尝试使用 #include 和 std::setfill('0') 但它没有用。这是简单的测试代码。
#include <iostream>
#include <string>
//#include <iomanip> // setw, setfill below doesn't work
int main()
{
int i;
for (i=0;i<20;i++){
    std::cout << "without zero fill : " << std::to_string(i) << ", with zero fill : " << std::to_string(i) << std::endl;
    //std::cout << std::setw(3) << std::setfill('0') << "without zero fill : " << std::to_string(i) << ", with zero fill : " << std::to_string(i) << std::endl;  // doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是,将一些数字转换为字符串,但其中一些带有零填充,其他则没有。(我实际上是用它来制作文件名。)我该怎么做?
(我不知道为什么这不像在 C …
最近我下载了 qemu,然后运行了 configure、make 和 make install。当我跑
qemu-system-sparc linux-0.2.img
Run Code Online (Sandbox Code Playgroud)
我只看到下面的一条消息
运行在`::1:5900'上的VNC服务器
在这种状态下,当我通过键入 打开 vncviewer 窗口时vncviewer :5900,我会看到该窗口。
窗口显示仿真屏幕  
欢迎使用 2014 年 3 月 10 日 08:41 构建的 OpenBIOS v1.1 输入
“帮助”以获取详细信息
尝试磁盘...
加载或初始化程序未设置有效状态
0>
如何让 vnc 窗口自动出现?以及如何提供正确的 linux 映像?
当我构建我的 linux 映像时,我可以获得 sImage.elf 或 sImage.bin 也包含文件系统。
在 busybox Makefile 中,我看到
.tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE
        $(call if_changed_dep,as_o_S)
Run Code Online (Sandbox Code Playgroud)
为什么规则中有两个冒号?这是什么意思?
我试图使用QEMU在sparc虚拟机上运行RTEMS(实时操作系统)应用程序.我几乎在那里,我几小时前就已经看过了.但在删除一些打印后,它无法正常工作,后来我发现它不是因为已删除的打印件.RTEMS映像和QEMU仿真模型之间没有正确传递数据.(我正在使用QEMU版本1.5.50和借用QEMU版本2.0.0的lan9118.c模型.我稍微修改了lan9118.)
在QEMU模型,内存区域ops定义为
struct MemoryRegionOps {
    /* Read from the memory region. @addr is relative to @mr; @size is
     * in bytes. */
    uint64_t (*read)(void *opaque,
                     hwaddr addr,
                     unsigned size);
    /* Write to the memory region. @addr is relative to @mr; @size is
     * in bytes. */
    void (*write)(void *opaque,
                  hwaddr addr,
                  uint64_t data,
                  unsigned size);
...
}
Run Code Online (Sandbox Code Playgroud)
在RTEMS应用程序中,我写的设备就像
        *TX_FIFO_PORT = cmdA;
        *TX_FIFO_PORT = cmdB;
Run Code Online (Sandbox Code Playgroud)
其中TX_FIFO_PORT的定义如下.
#define TX_FIFO_PORT                    (volatile ulong *)(SMSC9118_BASE + 0x20)
Run Code Online (Sandbox Code Playgroud)
但是当我写作时,
cmdA : 0x2a300200 and cmdB : 0x2a002a00, …Run Code Online (Sandbox Code Playgroud)