小编rhl*_*lee的帖子

为css指定基本URL

我不得不拆分一个长css文件.我把较小的css文件放在一个styles目录中.

现在我必须使用../符号更新网址上升一级.

无论如何都要指定从中加载资源的基本URL,例如HTML中的基本标记,但是使用CSS?

html css url path

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

在qemu中使用gdb调试引导加载程序

Freedos引导程序似乎存在问题.(在某些情况下,似乎bootcode无法找到内核.)

所以我试图用gdb调试qemu中的bootloader.按照几个维基上的说明和免费提供的在线课程资料,我像这样运行qemu

qemu-system-i386 -fda fdboot.img -boot a -s -S
Run Code Online (Sandbox Code Playgroud)

然后像这样连接gdb

$ gdb
(gdb) target remote localhost:1234
Run Code Online (Sandbox Code Playgroud)

我可以逐步完成前面的10 - 12条指令si,我假设它是SeaBIOS.

但过去,当我尝试进入引导加载程序代码时,它会继续执行而不会中断,一直到FreeDos菜单提示符.这完全跳过了我想在执行时逐步检查的引导加载程序代码.

我需要做什么才能通过引导加载程序?

[如果您想尝试自己,可以从项目网站下载freedos软盘映像.]

debugging assembly gdb qemu bootloader

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

等待gdb附加

我一直在使用gdb进行1或2个项目.即我援引gdb --args prog args.gdb与我正在调试的程序运行在同一个tty中.

但是我的最新项目是修改dtach实用程序.这是一个类似于屏幕的程序,所以tty被重定向到其他地方,因此我必须使用gdb的附加功能.

gdb attach的问题是,显然你不能从一开始就附加,因为你需要先运行程序才能得到一个pid来附加.

有什么办法可以让程序等到某个点,直到连接gdb为止?

我不能使用gdbserver,因为我在cygwin上.我也尝试过使用pause(),但是当我试图继续时它就挂了.

c debugging cygwin gdb

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

将原始数据打印到固定长度的十六进制输出

我有一个结构,指向结构的指针,我希望将前n个字节打印为长十六进制数,或者作为十六进制字节的字符串.

基本上我需要printf等效的gdb的检查内存命令,x/nxb.

如果可能的话,我仍然希望使用printf作为程序的记录器功能只是它的变体.如果我可以在不循环数据的情况下这样做,那就更好了.

c format printf hex

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

工厂方法和私有变量

我正在使用工厂类来创建另一个类的实例,比如Product类.

如何在工厂类中设置Product类中的私有变量?我应该这样做吗?

我打算做的是公共setter方法,然后在完成后冻结或锁定实例.但我觉得这是做错事的错误方法.

你会怎么解决这个问题?

编辑:

是的我想使用@derekerdmann的不可变对象方法.但我可能应该首先提供更多信息.

我正在php中编写一个类似HTML语言的解析器,因此您可以获得节点,而节点又可以包含其他节点.因此工厂是一个生成节点层次结构的解析器.如果你好奇,这里是代码http:// http://bazaar.launchpad.net/~rhlee/band-parser/dev/view/head:/src/bands.php

问题是,在我走下文档的其余部分之前,我不知道子节点是什么.所以我无法传递给构造函数.

有时我认为即使我希望它只在解析后才能读取,为什么会这样?我以php的DOMDocument解析器为例.您可以解析HTML文件,然后仍然可以修改结构.但是,这样您可以使用新更改再次重现HTML.我的解析器是单向解析器,因此解析后编辑结构的需要是不存在的.

php oop design-patterns factory

5
推荐指数
1
解决办法
334
查看次数

Valgrind(主要下面),如何获得完整的堆栈跟踪?

我有来自valgrind的以下堆栈跟踪.但它并没有给我完整的堆栈跟踪.

==2433== Invalid free() / delete / delete[] / realloc()
==2433==    at 0x402B06C: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2433==    by 0x43F345B: av_freep (mem.c:172)
==2433==    by 0x5A6F4D2: (below main) (libc-start.c:226)
Run Code Online (Sandbox Code Playgroud)

在gdb中,我我得到了同样的错误:

#5  0xb7c1345c in av_free (ptr=<optimized out>) at libavutil/mem.c:172
#6  av_freep (arg=0x88a2e48) at libavutil/mem.c:181
#7  0xb7c165c8 in av_opt_free (obj=0x88a2ba0) at libavutil/opt.c:787
#8  0xb6b56efc in avcodec_close (avctx=0x88a2ba0) at libavcodec/utils.c:1675
#9  0x0808a3e0 in encode_lavc_finish (ctx=0x8343a40) at encode_lavc.c:288
#10 0x08077d0b in exit_player_with_rc (mpctx=0x8313058, how=EXIT_EOF, rc=0)
at mplayer.c:705
#11 0x0806ced0 in main (argc=8, argv=0xbffff374) at …
Run Code Online (Sandbox Code Playgroud)

c debugging gdb valgrind stack-trace

5
推荐指数
1
解决办法
2616
查看次数

获取make以显示错误的行号

我有一个makefile,缺少ldflag.我知道如何修复它,但我不知道生成错误的makefile中的哪一行.

+ make
  CCLD   test
test-test.o: In function `write_png':
/home/lenovo/scratch/libass/test/test.c:52: undefined reference to `png_create_write_struct'
...
/home/lenovo/scratch/libass/test/test.c:57: undefined reference to `png_destroy_write_struct'
collect2: ld returned 1 exit status
make: *** [test] Error 1
Run Code Online (Sandbox Code Playgroud)

如何打印出错误所在的行?

(如果有人想知道,它是测试目录中libass项目的makefile.)

makefile gnu-make

5
推荐指数
1
解决办法
2269
查看次数

c中的bitshifting chars

我试图通过所有小端系统以可移植的方式将int中的字节转换为一系列字符.

我有以下代码:

#include <stdio.h>

int
main()
{
  int i = 0xabcdef12;
  printf("i: %x\n", i);
  char a, b, c, d;
  a = (i >> 000) & 0xFF;
  b = (i >> 010) & 0xFF;
  c = (i >> 020) & 0xFF;
  d = (i >> 030) & 0xFF;
  printf("a b c d: %x %x %x %x\n", a , b, c, d);
  if(a == 0x12)
    printf("a is 0x12\n");
  if(b == 0xef)
    printf("b is 0xef\n");
  if(c == 0xcd)
    printf("c is 0xcd\n");
  if(d == …
Run Code Online (Sandbox Code Playgroud)

c types bitmask bit-shift

4
推荐指数
1
解决办法
1396
查看次数

python read()和write()在大块/内存管理中

我正在编写一些python代码,在不同的点拼接大文件.我在C中做了类似的事情,我分配了一个1MB字符数组并将其用作读/写缓冲区.它非常简单:将1MB读入char数组然后将其写出来.

但是使用python我假设它是不同的,每次我调用size(1M)的read()时,它将分配一个1M长的字符串.并且希望当缓冲区超出范围时,我们将在下一个gc传递中释放.

python会以这种方式处理分配吗?如果是这样,常量分配/解除分配周期是否在计算上是昂贵的?

我可以告诉python使用与C中相同的内存块吗?或者python vm足够智能自己做吗?

我想我的目标是有点像在python中实现dd.

python file-io memory-management

4
推荐指数
1
解决办法
855
查看次数

项目中没有 Makefile.am 的 Makefile.in

在几个项目中,我看到了没有 Makefile.am 的 Makefile.in 。例如 bash http://git.savannah.gnu.org/cgit/bash.git/tree/和 dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

一直以为Makefile.in是automake生成的。此外,由于 Makefile.am 是用户编写的文件,我不会认为它会从代码存储库中省略。在 bash 源代码树中,Makefile.in 太大而无法手写,而 dtach 中的 Makefile.in 看起来也是生成的。像这两个项目中的 Makefile.in 是如何生成的?

c build-automation makefile build autotools

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