问题记录

来源:互联网 发布:赵薇 万家文化 知乎 编辑:程序博客网 时间:2024/06/14 01:17
1.遇到个崩溃问题是因为select写*了  增加字段后未对服务器代码进行修改。。。慎用*


2.打开finder,同时按下command+K  然后输入smb://x.x.x.x   ,x.x.x.x是你的XP的IP地址 这样连接下试试。
这样苹果就可以远程了


3.要移除某个cocos2d类的实例,在保证没有内存泄露的情况下(内存泄露的话,两个方法都调也不行),
调用 removeFromParent就可删除自身,无需调用removeAllChildren(),如果两个类都想调用,那么先调用removeAllChildren,在调用removeFromParent
如果创建精灵是通过CCSprite::create(),那么只需要在删除时调用精灵的removeFromParent就可以了。如果create()之后对精灵调用了retain(),
那么清理时在removeFromParent之后还需要对精灵调用release()




4.gdb 调试
gdb TUI模式 命令
layout cmd  命令模式
layout src  源码模式
layout sam  汇编模式
layout reg  寄存器模式


tui模式多窗口可以使用focus 设置窗口焦点
focus cmd
focus src
同命令
也可以使用focus next默认切换




GDB执行shell命令(在GDB中执行shell命令)
shell 「Cmd」


调用函数(在程序的当前上下文环境中调用函数「FunctionName」)
call 「FunctionName」


dump文件调试命令
调试输入: gdb filename core
filename就是产生core文件的可执行文件,croe就是产生的core文件名


查看崩溃信息
where


查看堆栈信息
backtrace或者bt


进入特定栈
f 栈号


info frame或info f
会打印出这些信息:栈的层编号,当前的函数名,函数参数值,函数所在文件及行号,函数执行到的语句


info args
打印出当前函数的参数名及其值。


info locals
打印出当前函数中所有局部变量及其值。


info catch
打印出当前的函数中的异常处理信息。




参考网站:
http://lib.csdn.net/article/embeddeddevelopment/67732
http://blog.csdn.net/suxinpingtao51/article/details/12072559




5.sql 语句  将一张表数据插入到另一张表并且增加字段这么写
 "INSERT INTO MESSAGE_UNREAD(MESSAGE_ID, IS_ALL, MESSAGE_TYPE,REWARD_ID,REWARD_INFO, USER_ID,\
TOUR_ID,SEND_DATE,STATE,SEND_TYPE)\
(SELECT MSG_ID_SQ.nextval , :1 , :2 , :3 , :4 ,a.USER_ID, :5 , :6 , :7 ,:8 FROM USER_TAB a)"

6.一个简单的存储过程
CREATE OR REPLACE 
PROCEDURE "CHANGE_READ_MSG" (i_message_id IN INTEGER DEFAULT '0')
AS
BEGIN
BEGIN
INSERT INTO MESSAGE_READ (MESSAGE_ID, IS_ALL, MESSAGE_TYPE,REWARD_ID,REWARD_INFO, USER_ID, TOUR_ID, RECV_DATE, STATE ,SEND_TYPE)
(SELECT t.MESSAGE_ID, t.IS_ALL, t.MESSAGE_TYPE,  t.REWARD_ID,t.REWARD_INFO, t.USER_ID, t.TOUR_ID, t.SEND_DATE, t.STATE, t.SEND_TYPE FROM MESSAGE_UNREAD t WHERE t.MESSAGE_ID = i_message_id);


DELETE FROM MESSAGE_UNREAD WHERE MESSAGE_ID = i_message_id;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
END;


END;


7.ini  枚举section
int CCreateGameDlg::GetSections(CStringArray& arrSection)
{
/*
本函数基础:
GetPrivateProfileSectionNames - 从 ini 文件中获得 Section 的名称
如果 ini 中有两个 Section: [sec1] 和 [sec2],则返回的是 'sec1',0,'sec2',0,0 ,当你不知道 
ini 中有哪些 section 的时候可以用这个 api 来获取名称 
*/
int i; 
int iPos=0; 
int iMaxCount;
TCHAR chSectionNames[1028]={0}; //总的提出来的字符串
TCHAR chSection[1028]={0}; //存放一个段名。
GetPrivateProfileSectionNames(chSectionNames,1028,strIni);


//以下循环,截断到两个连续的0
for(i=0;i<1028;i++)
{
if (chSectionNames[i]==0)
if (chSectionNames[i]==chSectionNames[i+1])
break;
}


iMaxCount=i+1; //要多一个0号元素。即找出全部字符串的结束部分。
//arrSection.RemoveAll();//清空原数组


for(i=0;i<iMaxCount;i++)
{
chSection[iPos++]=chSectionNames[i];
if(chSectionNames[i]==0)

arrSection.Add(chSection);
memset(chSection,0,i);
iPos=0;
}


}


return (int)arrSection.GetSize();
}


8.vec去重
vector<string>::iterator veciter;
sort(RewardNameiter->second.begin(), RewardNameiter->second.end());
veciter = unique(RewardNameiter->second.begin(),RewardNameiter->second.end());
if (veciter!= RewardNameiter->second.end())
{
RewardNameiter->second.erase(veciter,RewardNameiter->second.end());
}

9.postman,jmeter测接口,fiddler测抓包,redis缓存,数据库mysql
前端,功能,接口,兼容,易用,性能,


10.存储过程卡死问题
解决方法如下:
1:查V$DB_OBJECT_CACHE
SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CRM_LASTCHGINFO_DAY' AND LOCKS!='0';
注意:CRM_LASTCHGINFO_DAY为存储过程的名称。
发现locks=2,
2:按对象查出sid的值
select /*+ rule*/  SID from V$ACCESS WHERE object='CRM_LASTCHGINFO_DAY';
注意:CRM_LASTCHGINFO_DAY为存储过程的名称。
3:查sid,serial#
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';
4:alter system kill session 'sid值,serial#值' immediate;


整合一下:
select /*+ rule*/  a.sid, a.serial#,
       a.paddr, 'alter system kill session ''' || a.sid || ',' || a.serial# || ''';' AS kill_session,b.OBJECT
FROM v$session a, v$access b
WHERE a.sid = b.sid
AND b.OBJECT = UPPER('m_retail_submit');






11.sql 语句   更快捷的方式来查询分组后有多少数据量    原理是按照重复数据有多少个,然后取每个数据的第一个  求count
select count(gidrc) from (select row_number() over (partition by gameid order by tourid) gidrc from game_tab where roomid = :x and tourid = :y) where gidrc = 1
原创粉丝点击