作者查詢 / Killercat
作者 Killercat 在 PTT [ C_and_CPP ] 看板的留言(推文), 共2565則
限定看板:C_and_CPP
看板排序:
全部car23502Gossiping21786Road8706MAC5506WOW5475MRT5410iOS2660C_and_CPP2565HatePolitics1681SuperBike1618creditcard1347RealPlaying1336biker1084java845DIABLO780GameDesign767Hunter761IA758points613AndroidDev584Soft_Job555Military537Tech_Job530Programming448MacDev392Bus352DigiCurrency318Aviation310KMT279MusicGame261Coffee244worldtrigger202Railway196MobileComm154TORIKO151L_SecretGard150ONE_PIECE144C_Chat141Little-Games120marvel114Claymore101DPP91ToS62Neihu60GuildWars53EV50fatworld42C_Sharp38MobilePay38home-sale37movie34LoveLive_Sip31SYSOP30DarkSwords28Tainan25joke22Lifeismoney21politics18NTU16Salary16Stock16TaichungBun16About_Life15hypermall12IC-Card12iPod11MOD_AP11PublicIssue11Teacher11HateP_Picket10L_LifeInfo10Taoyuan10Wanhua10FinalFantasy9L_RelaxEnjoy9PlayStation9Sub_CS9E-appliance8Google8AC_In7L_TalkandCha7LangService7Gintama6Gov_owned6HsinYi6Kaohsiung6LinuxDev6media-chaos6Windows6BigShiLin5Browsers5EverQuest25Linux5Python5Shu-Lin5ShuangHe5sky5SongShan5travel5Android4CrossStrait4CVS4Eclipse4EuropeanCar4FITNESS4ForeignEX4ONLINE4PingTung4TuCheng4Barista3ComGame-Plan3FuMouDiscuss3ID_Problem3KMU3marriage3nb-shopping3pighead3Post3rent-exp3SENIORHIGH3StockPicket3StupidClown3Translate-CS3WomenTalk3YOLO3Datong2fastfood2Hong_Kong2Hsinchu2HSNU_9212Hualien2image2Lawyer2Leo2LoL2MuscleBeach2NTUT_ME495A2Nurse2Policy2TaichungCont2AfterPhD1Ajax1ask1AskBoard1Azumanga1CarShop1cat1CodeJob1CPBL1CSSE1DeathNote1dog1EatToDie1FTV1Geography1GTA1Hearthstone1Hotel1ID_Multi1Jolin1Keelung1KOTDFansClub1KS93-3201L_LifeJob1License1Monkeys1nCoV20191NDHU-AIPhy1NUU_CSIE1PC_Shopping1PokemonGO1PttBug1San-Ying1SetupBBS1sex1soul1specialman1speech1StarWars1Steam1SuperIdol1TA_AN1tennisprince1Tigers1traffic1TuTsau1twin1WarCraft1<< 收起看板(188)
18F推:1. 丟queue用polling方式來作log06/25 09:44
19F→:2. 可以用syslog來作這種雜事06/25 09:44
24F→:C++11有atomic家族可以作類似的行為06/25 13:13
25F→:http://en.cppreference.com/w/cpp/atomic06/25 13:13
26F→:atomic/interlocked都統稱lockless, 因為他們都是可以06/25 13:13
27F→:在「不須lock」的情況下正確運行。用C++11標準去作吧06/25 13:14
11F→:中間那堆if改用chain of responbility來寫啦06/23 13:29
22F→:er... CoR寫法C就做的到了噢...06/23 20:29
23F→:配上function pointer尤其方便 :D 你可以試試看06/23 20:29
30F→:function pointer把所有cor functions放在一個list06/24 00:17
31F→:然後我們只要foreach每個function 看她能不能handle即可06/24 00:18
32F→:大多數結構良好的CoR都會以一個fp跟一組list來運作06/24 00:18
33F→:其實看懂CoR以後大多數人也會往這方向進化就是06/24 00:19
34F→:State Machine基本上是CoR主場 可以試著做做看06/24 00:19
36F推:https://gist.github.com/Rayer/cc5600f0d177fd8ffd0406/24 13:42
37F→:你的例子雖然也是CoR 不過這C比較作不出來06/24 14:00
38F→:C還是用fp以及fp array為主比較常見06/24 14:01
40F→:我不是貼在gist上示範給你看嗎 = = 至少用gist吧06/24 16:55
41F→:除非你排版可以排的跟下面佑子這樣不傷眼... orz06/24 16:55
11F推:call by value要考慮shallow copy的問題,06/20 09:28
12F→:你的結構裡面要是有指標的話 很可能會拿到一個出了結構06/20 09:29
13F→:說錯 出了scope 就無效的指標06/20 09:29
14F→:其實我個人認為copy by value在某些層面上是個危險動作06/20 09:30
15F→:除非你能非常有把握的處理掉shallow copy造成的無效指標06/20 09:30
16F→:而把結構hold住的指標全部改成shared_ptr可以降低風險06/20 09:31
17F→:但是deep copy會演變成一個recursive copy的問題就是06/20 09:32
18F→:總之 我認為你可能沒想到那麼多,除非有必要否則多半還06/20 09:33
19F→:是儘量避免對結構by value的方式會比較好06/20 09:34
15F推:用C的話 GLib算是個不錯的STL在C上的替代品06/20 14:49
1F→:Segmentation fault就是一般當掉的意思 google這沒意義06/18 21:32
4F→:簡單的說 a b都會跟__builtin_frame_address有一段固定06/18 09:50
5F→:的距離 你可以試試看用這段距離去取值06/18 09:50
6F→:但是我不知道他因為什麼而不同就是06/18 09:50
12F→:所以gcc會因為我執行__builtin_frame_address(0)所以隨06/18 14:18
13F→:便找一個地方先把arg stack dump出來嗎? 好詭異的行為06/18 14:19
15F→:我懂了 你是說他在compile time發現我要對a取址所以會多06/18 14:27
16F→:作一些額外的行為,把他從真正的frame stack搬出來對吧?06/18 14:27
17F→:因為就我理解用register傳應該只有fastcall會這樣玩...06/18 14:28
18F→:我回去試試看用別的型別 感謝06/18 14:28
19F→:欸 仔細看了一下 -S 你是對的 不過我這邊是放esi/edi06/18 14:32
22F→:了解 看了一下.s的確也是如此.... 感謝!06/18 14:33
24F→:不過這樣說的話 其實本來問題應該是無解了...06/18 14:46
25F→:因為型別不同他會用不同方法去傳 很傷腦筋06/18 14:47
28F→:可是request是說要從callee... 所以才有這篇文章囧06/18 15:08
32F→:callee確定是不可行的了 這年頭連直接對frame stack hac06/18 15:17
33F→:k的最後希望都沒了 還能怎麼搞 :D06/18 15:17
34F→:大概就剩下Astral說的拿debug symbol拖出來鞭屍了06/18 15:18
13F推:這看起來會因為call convention不同而必須有不同做法06/18 03:06
14F→:不過我覺得頗難 一來是function本身拿不到自己的pointer06/18 03:09
15F→:所以沒辦法hack自家的stack,二來則是我想就算拿的到06/18 03:10
16F→:應該也只有stdcall做的到你說的事情06/18 03:10
17F→:cdecl的話因為stack在caller那裡管 callee(以本例來講06/18 03:11
18F→:就是function自己)是沒辦法直接從記憶體hack到參數位置06/18 03:11
19F推:hum...stdarg搞不好可以在cdecl下做到06/18 03:34
20F→:gcc.gnu.org/onlinedocs/gcc/Return-Address.html06/18 03:46
21F→:__builtin_frame_address 這樣也許能抓06/18 03:47
22F→:ok 上面是正確解答 我回一篇給你06/18 04:16
23F→:http://tinyurl.com/kk3etza mac跑是對的 centos跑是錯06/18 04:26
24F→:的,看起來這不是通解.... 傷腦筋06/18 04:26
3F→:最簡單最懶人的方法就是結尾放while(true); 開top看06/17 17:16
4F→:不然就學一下gprof06/17 17:17
1F推:gdb看看是不是掛在malloc那行?06/17 16:01
5F→:一次malloc那麼大一塊 其實出包機會還滿大的06/17 17:15
9F→:有些實作會因為page fault直接卡在malloc卡很久06/18 13:35
13F推:這其實是一個很典型的「拿void*去裝任何東西」的寫法06/16 23:17
14F→:C就算了 C++請完全避免這種行為06/16 23:17
15F→:另外C式轉型 像是這個 其實很大一部份都是reinterpret06/16 23:18
16F→:reinterpret_cast就是「完全不檢查」的轉法 請絕對避免06/16 23:18
17F→:在C++裡面出現這種行為06/16 23:18
31F推:C很常見是因為無奈 xd C++除了塞thread資料以及相容舊06/17 11:06
32F→:C Libs以外 實在沒有什麼理由去塞void*06/17 11:06
33F→:況且現在有std::thread了 更該避免這種行為06/17 11:08
34F→:我是認為 在僅使用四大轉型的前提下,只要用到dynamic06/17 11:09
35F→:就代表這code設計有改進空間 用到const cast代表這code06/17 11:09
36F→:需要嚴格再檢視 至於出現reinterpret...大概八成是哪裡06/17 11:10
37F→:作錯了才需要這樣轉06/17 11:10