小编Pat*_*ick的帖子

如何用GDB拆卸内存范围?

我正在尝试反汇编程序以查看系统调用汇编指令(我相信INT指令)和GDB处理程序,并编写了一个程序(见下文),用于打开和关闭文件.

我能够跟随调用与GDB打开,直到它执行了一个调用.

当我试图告诉GDB"反汇编0x ...."(调用地址)时,它回复"没有函数包含指定的地址".

是否有可能强制GDB以内存地址反汇编(或在尽可能好的汇编程序中显示它)?如果是这样,怎么样?

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE* f;
    f = fopen("main.c", "r");
    if (!f) { 
      perror("open");
      return -1;
    }
    fclose(f);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

gdb disassembly

58
推荐指数
5
解决办法
10万
查看次数

如何正确引用资源文件以进行JAR和调试?

在使用Maven项目和Jar文件时,我有一个令人讨厌的问题引用资源...

我将所有资源都放在专用文件夹/ src/main/resources中,这是Eclipse中构建路径的一部分.使用引用文件

getClass().getResource("/filename.txt")
Run Code Online (Sandbox Code Playgroud)

这在Eclipse中运行良好但在Jar文件中失败 - 资源位于jar根目录正下方的文件夹中...

有没有人知道在JAR和Eclipse中的(!)引用文件的"最佳实践"?

编辑: 问题是,虽然资源实际上位于顶级文件夹"资源"中的JAR中,但上述方法无法找到文件...

java eclipse jar

43
推荐指数
3
解决办法
7万
查看次数

结构中的字符数组 - 不兼容的赋值?

我试图找出一个结构真的'是'并遇到问题,所以我真的有两个问题:

1)'sara'中保存了什么?它是指向结构的第一个元素的指针吗?

2)更有趣的问题:为什么不编译?GCC说"test.c:10:错误:分配中的不兼容类型",我无法弄清楚为什么......(这部分已经通过你的答案解决了,太棒了!)

#include <stdio.h>

struct name {
    char first[20];
    char last[20];
};

int main() {
    struct name sara;
    sara.first = "Sara";
    sara.last = "Black";
    printf("struct direct: %x\n",sara);

    printf("struct deref: %x\t%s\n", *sara, *sara);


}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

c struct char

33
推荐指数
3
解决办法
11万
查看次数

为什么在片段恢复后再次调用onLoadFinished?

我对装载机有一个奇怪的问题.目前我不确定这是否是我的代码中的错误或我误解了加载器.

该应用程序

问题出现在对话中(想象类似于Whatsapp的东西).我使用的加载器是基于AsyncTaskLoader示例实现的.我正在使用支持库.

  • 在OnCreate中,我启动一个加载器来检索缓存的消息.
  • 当CachedMessageLoader完成时,它启动RefreshLoader以检索(在线)最新消息.
  • 每个加载器类型作为不同的ID(例如,离线:1在线:2)

这非常有效,但有以下例外.

问题

当我打开另一个片段(并将事务添加到backstack)然后使用Back-Key返回conversationFragment时,onLoadFinished再次使用之前的两个结果调用.此调用发生在片段有机会再次启动加载器之前...

我之前获得的"旧"结果的传递导致重复的消息.

  • 为什么这些结果再次传递?
  • 我是否错误地使用这些装载机?
  • 我可以"使结果无效"以确保我只将它们送到一次或者我必须自己消除重复吗?

堆栈跟踪的电话

MyFragment.onLoadFinished(Loader, Result) line: 369 
MyFragment.onLoadFinished(Loader, Object) line: 1   
LoaderManagerImpl$LoaderInfo.callOnLoadFinished(Loader, Object) line: 427   
LoaderManagerImpl$LoaderInfo.reportStart() line: 307    
LoaderManagerImpl.doReportStart() line: 768 
MyFragment(Fragment).performStart() line: 1511  
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 957 
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1104  
BackStackRecord.popFromBackStack(boolean) line: 764 
...
Run Code Online (Sandbox Code Playgroud)

更新1 此处提到的加载器由对话片段启动:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    Bundle args = getArguments();
    m_profileId = args.getString(ArgumentConstants.ARG_USERID);
    m_adapter = new MessageAdapter(this); …
Run Code Online (Sandbox Code Playgroud)

android android-loadermanager android-loader

12
推荐指数
1
解决办法
6236
查看次数

使用SVN和Eclipse正确设置GWT项目

我正在尝试使用Eclipse和Google Web Toolkit开发一个小项目.这是一个(小)小组项目,所以我想使用SVN.

到目前为止,我已经在Eclipse中创建了一个GWT项目,并将其添加到我的SVN Repository中.问题是,当我在项目中使用'compile'时,它会破坏SVN的元数据,整个war-directory被标记为已损坏.(红色感叹号).

然后我无法提交和/或更新 - 我也不能忽略war目录,因为当它们丢失时Eclipse抱怨的web.xml/appengine-web.xml文件...清理也失败了.

到目前为止问题 - 你们中的任何人都知道如何使用SVN正确建立一个新的GWT项目吗?哪些文件需要忽略?哪些文件可以提交?...

一个初学者友好的解决方案将是伟大的!

提前致谢

eclipse svn gwt

9
推荐指数
1
解决办法
3033
查看次数

初始化后,未初始化的全局变量在哪里出现?

我在学习时遇到了一些问题.我知道C中未初始化的全局变量被分配给可执行ELF文件中的.bss部分.但是当我开始使用它们时会发生什么?即他们在堆上或其他地方获得了一席之地?

我试图通过打印(仍然未初始化的)全局变量的地址来找出

printf("%x",&glbl);
Run Code Online (Sandbox Code Playgroud)

总是返回相同的值0x80495bc ...为什么?

c linker elf

8
推荐指数
1
解决办法
2675
查看次数

使用perf监视原始事件计数器

我试图测量具有多个(物理)处理器的(Intel Xeon)机器上的某些硬件事件.具体来说,我想知道为读取'offcore'数据发出了多少请求.

在Intels文档中找到了OFFCORE_REQUESTS硬件事件,它给出了事件描述符0xB0和数据需求,附加掩码0x01.

然后告诉perf记录事件0xB1(即0xB0 | 0x01)并将其称为:

perf record -e r0B1 ./mytestapp someargs
Run Code Online (Sandbox Code Playgroud)

或者这是不正确的?因为perf report这样输入的事件没有显示输出.

这个领域的perf文档相当稀疏,除了一个教程条目,它没有说明它是哪个事件(尽管这个对我有用),或者它是如何编码的......

任何帮助是极大的赞赏.

linux profiling intel perf

6
推荐指数
1
解决办法
4763
查看次数

将Android自动完成中的选择转换为字符串

我刚刚使用在线Web服务实现了文本字段的自动完成,基于Stackoverflow上的这个答案: ArrayAdapter在AutoCompleteTextAdapter中从Webservice后期更新

使用一个ArrayAdapter<User> implements Filterable,我已经设法自动完成建议我按预期输入. User是一个Java Bean,其中包含建议(年龄,名称,...)中显示的信息.

当我选择建议时,自动填充字段将填充"错误"数据 - 使用该toString()方法,而不是bean的"name"属性.

我的问题是:我可以覆盖(在适配器中)一个方法,它允许我指定如何转换bean,以便为AutoCompleteTextView返回正确的属性? (理想情况下,不应更改User.toString())

谢谢!

android autocomplete

3
推荐指数
1
解决办法
2010
查看次数

LLVM抱怨汇编程序错误"内存操作数中的意外令牌"

我正在做一项研究工作,以测量我机器上的内存访问时间.为了确定我们机器上的时钟周期,我们获得了以下C片段:

static inline void getcyclecount(uint64_t* cycles)
{
    __asm __volatile(
                     "cpuid            # force all previous instruction to complete\n\t"
                     "rdtsc            # TSC ->  edx:eax \n\t"
                     "movl %%edx, 4(0) # store edx\n\t"
                     "movl %%eax, 0(0) # store eax\n\t"
                     : : "r"(cycles) : "eax", "ebx", "ecx", "edx");
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译它(XCode 4,使用"Apple LLVM编译器2.1")时,它会在rdtsc resp的"\ t"错误"内存操作数中的意外令牌"中产生两次.第一个movl指令行.

我知道基本的汇编程序,但对C内联汇编程序格式没有任何线索.

你们中的任何人都知道这段代码会出现什么问题吗?

谢谢!

c assembly llvm xcode4

3
推荐指数
1
解决办法
2364
查看次数

HttpURLConnection Post:输出流没有效果?

我正在开发一个Android应用程序,并且已经发现不同的Android版本在处理Http(s)URLConnections(http://stackoverflow.com/q/9556316/151682)方面有不同的方法.

我遇到了Android 4很好地通过HTTPS执行POST请求的问题,在运行下面的代码时会自动添加Content-Type等标题.

但是,在Android 2.3.5(设备和模拟器)上,对输出流的任何写入似乎都被忽略 - 我使用Web代理Charles调试它,并且在发送所有标头时,写入输出流的数据不会被发送...

谁知道如何解决这个问题?

注意:由于我正在开发的API只有一个自签名证书,我需要在此时禁用证书验证.

蒂娜,帕特里克

更新 在此期间,我也试图跟随,但无济于事:

  • 在BufferedOutputStream上调用close()之后flush()调用
  • 调用close()OutputStream和BufferedOutputStream
  • 改为使用OutputStreamWriter
  • 在打电话close()前没有打电话getInputStream()

    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setConnectTimeout(CONNECT_TIMEOUT);
    
    connection.setDoOutput(true); // Triggers POST.
    connection.setRequestMethod("POST");
    int contentLength = 0;
    if(body != null) {
        contentLength = body.getBytes().length;
    }
    
    // Workarounds for older Android versions who do not do that automatically (2.3.5 for example)
    connection.setRequestProperty(HTTP.TARGET_HOST, url.getHost());
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    
    // Set SSL Context -- Development only
    if(context != null && connection instanceof …
    Run Code Online (Sandbox Code Playgroud)

post android httpurlconnection

3
推荐指数
1
解决办法
1万
查看次数