草庐IT

user_address

全部标签

c++ - 为什么我在检查核心转储时进入 gdb "Cannot access memory at address 0x..."?

我在分析核心转储时尝试打印以下行时收到此消息。(gdb)p/x*($esi)Cannotaccessmemoryataddress0xe6d3a030我提到%esi(0xe6d3a030)指向的地址应该指向一些有效的分配数据。(当我自己运行这个程序并按照相同的指令中断时,这个打印有一些有意义的信息)造成这种情况的可能原因是什么?我是否遗漏了核心转储中的一些信息?如果是,我缺少什么信息?核心转储不应该包含所有已分配内存的快照吗?编辑:当我在加载核心转储时在gdb“维护信息部分”命令中使用时,我得到下面显示的信息。我可以看到地址0xe6d3a030在0xe6d00000->0xe6dfb0

c++ - 使用 WM_USER、WM_APP 或 RegisterWindowMessage

目前,我有一个WindowsEXE应用程序,其中包含几个加载的DLL。DLL需要通过PostMessage和SendMessage与我的Windows应用程序通信。WindowsEXE应用程序+DLL都在一个进程中。消息在EXE和DLL之间应该是私有(private)的。我想知道,我应该使用-WM_USERbasedmessage-WM_APPbasedmessage-RegisterWindowMessage为什么?如果有一个外部进程(另一个exe)试图查找我的Windows应用程序的FindWindow,并发送具有相同ID的消息,会发生什么情况?我不想回复,因为我只对来self自己

C++ 指针 : changing the contents without changing the address?

MyCustomObject*object=newMyCustomObject();假设我的许多类都使用了对象指针,但突然间我想在不更改地址的情况下更改指针的内容。我认为object=newMyCustomObject()会给对象一个新的指针地址是不是错了?我想要新对象而不更改指针地址(是的,我会确保清理旧对象)。 最佳答案 通常最好更改对象的属性(通过调用其方法)而不是删除它并创建一个新对象。特别是可以完全通过赋值来替换对象,如:*object=MyCustomObject();//Replaceobjectwiththeresu

c++ - 使用 C 字符串会给出警告 : "Address of stack memory associated with local variable returned"

我不是C程序员,所以我对C-string不是很熟悉,但是现在我必须使用C库,所以这里是我的代码的简化版本来演示我的问题:char**ReadLineImpl::my_completion(){char*matches[1];matches[0]="add";returnmatches;}我收到此警告:Warning-addressofstackmemoryassociatedwithlocalvariable'matches'returned而且我的程序似乎不能正常工作(可能是因为上面提到的警告)。警告意味着什么?会不会造成什么问题? 最佳答案

c++ - 为什么使用 'function address == NULL' 而不是 'false' ?

浏览一些遗留代码我发现了这样的功能:staticinlineboolEmptyFunc(){return(void*)EmptyFunc==NULL;}和这个有什么区别:staticinlineboolEmptyFunc(){returnfalse;}创建此代码是为了在几个不同的平台下编译,例如PS2、Wii、PC...有什么理由使用第一个函数吗?喜欢更好的优化或避免一些奇怪的编译器错误行为? 最佳答案 两个函数在语义上是相同的:它们总是返回false*。标准完全允许将第一个表达式折叠为常数值“false”,因为它不会改变任何可观察

node.js - 如何在 windows node.js 上运行 Mocha 测试(错误 : Cannot find module 'C:\cygdrive\c\Users )

我正在尝试在Windows中运行一个应用程序,这个应用程序有一些mocha测试。我需要制作。我读了这个Mocharequiresmake.Can'tfindamake.exethatworksonWindows还有这个Node.jscannotfindmodule-interferingwithcygwinonWindows我在Github目录(在cygwin目录结构之外)中有应用程序,并且我安装了windows版本的Node。我尝试使用powershell并按照建议设置别名,但我总是得到>module.js:340>throwerr;>^Error:Cannotfindmodule'

node.js - 类型错误 : Cannot read property 'address' of undefined supertest

我需要一些帮助来解决我对nodejs代码进行测试的问题。我正在使用Mocha和super测试。我对超测中的实现感到困惑。我不知道要解决它。我正在尝试自动下载文件。describe('GET/entry/:entryId/file/:id/download',function(){it('shouldpassdownloadfunction',function(done){this.timeout(15000);request(app.webServer).get('/entry/543CGsdadtrE/file/wDRDasdDASAS/download').set('Authori

node.js - typescript 错误 : Property 'user' does not exist on type 'Request'

我的express应用中有以下代码router.get('/auth/userInfo',this.validateUser,(req,res)=>{res.json(req.user);});我的IDE似乎在提示这个错误errorTS2339:Property'user'doesnotexistontype'Request'.当我编译我的typescript代码时,它似乎抛出了这个错误。任何想法为什么会发生这种情况? 最佳答案 我们有一个用Express和Typescript编写的大型API,这就是我们处理此类场景的方式:我们将请

node.js - 如何更新passportjs设置的req.user session 对象?

我已经尝试了很多天,但我所有的测试都失败了......我平台上的用户通过使用passportjs策略(paypal、facebook、google...)连接他们。当用户连接时,我将他的昵称写在标题的右侧。header的html代码是从handlebars模板生成的,当这个部分由expressjs提供时,我将req.usersession对象发送到模板,以便写入昵称和其他信息......顺便说一句,这很好用,但是当用户从他的个人资料更新他的昵称时我遇到了问题,我无法在服务器端更新session对象,如果用户重新加载页面,旧昵称会再次出现。而且我不想每次用户加载页面时都向数据库请求用户信

Node.js "passport-google-oauth2"在 Express 应用程序中提供 "failed to fetch user profile"错误

在开发node.js的最后一个示例时的介绍book(使用GoogleOpenID认证策略的express.js应用程序),在将passport-google包(于2015年4月20日过时)替换为passport-google-oauth2包(GoogleOAuth2.0的身份验证策略)并遵循itsdocumentation'spage处的指示和examplehere;选择我的Google+帐户后出现以下错误,该帐户由oath2.js模块引发,具体调用this._oauth2.get("https://www.googleapis.com/plus/v1/people/me",...)在