我有很多可能从valgrind输入.那是什么意思 ?因为我正在使用sqlite并且它经过了很好的测试.我不认为这些是正确的条目.我做错了什么?
16 bytes in 1 blocks are possibly lost in loss record 30 of 844
==23027== at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==23027== by 0x6525BE: sqlite3MemMalloc (in app_mem.out)
==23027== by 0x63C579: mallocWithAlarm (in app_mem.out)
==23027== by 0x63C904: sqlite3DbMallocRaw (in app_mem.out)
==23027== by 0x6886D6: codeOneLoopStart (in app_mem.out)
==23027== by 0x68A9C8: sqlite3WhereBegin (in app_mem.out)
==23027== by 0x68CC9E: sqlite3Select (in app_mem.out)
==23027== by 0x6A8644: yy_reduce (in app_mem.out)
==23027== by 0x6AAEAC: sqlite3Parser (in app_mem.out)
==23027== by 0x6AB357: sqlite3RunParser (in app_mem.out)
==23027== by 0x6ADF84: sqlite3Prepare (in …Run Code Online (Sandbox Code Playgroud) 我宣布一个变量 string s;
做s = "abc";现在它有3个字符缓冲区.
后
s = "abcd" 它有4个字符的缓冲区.
现在是第三个声明之后
s = "ab" 问题是它会保留4个字符的缓冲区还是会重新分配2个字符的缓冲区?
如果它将分配2个字符缓冲区有任何方法我可以告诉它保持分配的最大缓冲区.
那么它是否保留了最大大小的缓冲区?
s = "ab"
s="abc"
s="a"
s="abcd"
s="b"
Run Code Online (Sandbox Code Playgroud)
现在它应该保持4的缓冲区.
那可能吗?
我正在关注文档http://docs.kohanaphp.com/general/helpers.但这些步骤在kohana 3.1中不起作用.我在kohana 3.1中找不到任何关于助手的文档.我如何在kohana中创建自己的助手类?
我url::redirect在kohana中找不到功能3.1
这个功能的新名称是什么?(如果它仍然存在!)
我正在使用cmake创建包
我有以下结构
bin/
bin1
lib/
lib1
lib2
Run Code Online (Sandbox Code Playgroud)
其中lib1和lib2是外部动态库.如何设置RPATH以便它自动链接lib1和lib2?
我有运行进程,但它的可执行文件已被删除.如果我尝试附加gdb,我得到以下错误
/home/vivek/binary/releases/20120328101511/bin/app.exe (deleted): No such file or directory.
Run Code Online (Sandbox Code Playgroud)
如何将gdb附加到此进程?
示例测试用例:源代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
for (;;){
printf("Sleeping");
sleep(1);
}
}
Run Code Online (Sandbox Code Playgroud)
编译它
gcc main.cc -o a.out
gcc main.cc -o b.out
Run Code Online (Sandbox Code Playgroud)
运行./a.out
现在从不同的终端删除a.out.和fire gdb附加pgrep a.out文件b.out它不起作用.
GDB显示以下错误:
/tmp/temp/a.out (deleted): No such file or directory.
A program is being debugged already. Kill it? (y or n) n
Program not killed.
Run Code Online (Sandbox Code Playgroud) 我有一个需要 11 秒的函数。我想分析它在 I/O 上花费了多少时间。是否有任何工具可以分析函数内部的 I/O 时间花费?这可以给静态像
Total Time I/O TIME Function Name
x y f
Run Code Online (Sandbox Code Playgroud) 我正在考虑使用git describe来生成自动版本号。正如这里的建议。
我的问题是,如果我得到 o/p 的git describeas v2.0-64-g835c907,我将来如何使用 git 签出该特定修订号?
我正在使用MySQL C++连接器.Valgrind显示每个连接泄漏192个字节.它只是在线程环境中泄漏内存而没有线程,它没有泄漏任何内存.我做错了什么?我是否需要调用其他一些功能进行清理?示例代码:
#include <pthread.h>
#include <iostream>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
using namespace std;
void* test(void* arg) {
try {
sql::Driver *driver;
sql::Connection *con;
/* Create a connection */
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
/* Connect to the MySQL test database */
con->setSchema("test");
delete con;
} catch (sql::SQLException &e) {
cout << "# ERR: SQLException in " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用gdbserver ...
我有一个/user/bin/foo使用pid运行二进制路径的应用程序19767。
在远程启动gdbserver:
gdbserver --remote-debug --multi 0:12347
Run Code Online (Sandbox Code Playgroud)
在客户端上启动gdb并将其连接以删除服务器
target extended-remote 192.168.1.84:12347
Run Code Online (Sandbox Code Playgroud)
在pid上附加了gdb
attach 19767
Run Code Online (Sandbox Code Playgroud)
表明:
warning: Could not load vsyscall page because no executable was specified
try using the "file" command first.
0x00007f207550043c in ?? ()
Run Code Online (Sandbox Code Playgroud)
另外,它显示的当前线程信息不正确。像信息线程显示1个线程,但我的应用程序有10个线程-
(gdb) info threads
* 1 Thread 19767.19767 0x00007f207550043c in ?? ()
Run Code Online (Sandbox Code Playgroud)
如何要求gdb从远程文件加载符号/user/bin/foo?如何使其显示正确的信息?