如果我需要x个字符来测试我的程序,有没有办法在linux下用终端快速生成它们?还是在python中?例如,当我输入80个字符时,我想测试我的程序是否崩溃。但我希望能够在终端中生成80个字符,然后将其复制、粘贴到我的程序(或管道等),而不是编写80个字符。我试着这样做:
>>> for item in range (1,80):
... print "x",
它可以工作,但它打印x之间的空格将超过80个字符
我开发了一个定制的系统调用来记录终止的进程。C程序杀死进程并调用自定义的系统调用,传递进程的进程ID,然后系统调用将被杀死的进程的ID打印到内核的日志。这里,我只是传递一个虚拟来测试系统调用是否写入内核日志。系统调用表中的系统调用号为329。
下面是我的系统呼叫
#include <linux/kernel.h>
asmlinkage long sys_killa(char* proc_id)
{
printk("The process %s has been killed", proc_id);
return 0;
}
这是我的C程序来调用
我有一个程序,当我从终端(没有GDB)运行时,它会打印一些输出。假设输出如下所示
welcome to CMP simulator
initializing
finish initialization
now run
goodbye
现在,当我想使用GDB时,程序会给出一个PID,我用它来连接GDB。假设程序的输出现在如下所示
welcome to CMP simulator
gdb - 5932 (Run this command on another terminal and type "continue" at GDB prompt)
当程序等待SIGCONT时,我
这很不言自明,但是...
if input~=nil then
docom=loadstring(input)
print(docom())
else
print("Command execution failed")
end
我知道if语句中的错误,但我的重点是,如果它不是有效的Lua命令,我如何不运行它,而是打印一个错误。如果它是有效的Lua,我如何确保错误被停止,并在不崩溃的情况下运行打印的错误消息。如果需要os.execute(),我使用linux btw
最后,我在Xcode中使用我的真实设备实现了这个问题。
如果我正在开发的应用程序崩溃了,那么崩溃日志不是用Xcode打印的,但是,如果我在模拟器中运行同一个项目并复制相同的崩溃,日志就会成功地打印出来。
如果应用程序使用real设备崩溃,则打印如下:
崩溃后,它会打印一行:
libc++abi.dylib: terminating with uncaught exception of type NSException
另外,我还收到了这条日志:
If the app crashes using a real device this is printed:
warning: could not
我有Qt应用程序,这是显示一个WebView (基于webkit)。我正在尝试使用gdb来调试它。当我通过gdb运行应用程序时,它几乎立即崩溃。该应用程序在gdb之外运行时不会出现问题。 崩溃的原因是: Thread 1 "myapp" received signal SIGILL, Illegal instruction.
0x4a4d9a88 in ?? () from /usr/lib/libcrypto.so.1.0.2 由于错误是SIGILL,是否有可能是gdb从错误的路径加载lib? 这个应用程序非常简单,只是在特定的URL上显示一个WebView: ui
下面的程序显示了当出现‘除以零’之类的错误时,缓冲I/O会如何在程序中造成问题:
int main()
{
int a = 1, b = 0, c;
printf("Dividing...");
c = a/b;
printf("Answer is: %d\n", c);
return 0;
}
输出为Floating point exception (core dumped)。
当然可以。但令人惊讶的是,如果我将第一个printf改为printf("Dividing...\n");,这个文本实际上会在